// JavaScript Document
/**
 * This function resets all input fields (<input> HTML elements) 
 * and drop-down lists (<select> HTML elements).
 */
function sendrequest(url) 
{
window.location=url;
}

var array;
var getTableWidth;
/**
 * Clicking on column headers should resort and reload table.
 */
function reloadTable(url, sortmessage){

var filter = document.getElementById("overlay");
filter.style.display="block";
document.getElementById('sorting').innerHTML='<div id="mbox"><div align="right">' + sortmessage + '</div></div>';

jQuery.get(url,
function (data){
   var filter = document.getElementById("overlay");
   filter.style.display="none";
   document.getElementById('dataContainer').innerHTML=data;
   newspaperCount();
   bindTableEvents();
}
);
}


/**
 * Ajax request utillity method.
 */
function ajaxSendGet(url, div){
jQuery.get(url,
function (data){
   jQuery("#" + div).html(data);
}
);
}

/**
 * Displays media database info.
 */
function showMediaDatabase(url, div){
jQuery.get(url,
function (data){
   jQuery("#" + div).html(data);
}
);
}


/**
 * Load help topic.
 */
function showHelp(url, div){
jQuery.get(url,
function (data){
   jQuery("#rightColumn").html(data);
}
);
}

/**
*/
function reloadDemographyTable(url, sortmessage){

var filter = document.getElementById("overlay");
filter.style.display="block";
document.getElementById('sorting').innerHTML='<div id="mbox"><div align="right">' + sortmessage + '</div></div>';

jQuery.get(url,
function (data){
   var filter = document.getElementById("overlay");
   filter.style.display="none";
   document.getElementById('middle').innerHTML=data;
}
);
}
jQuery(document).ready(function()
{
 	jQuery("#minimizeButton").click(function(event)
	{
		event.preventDefault();
		jQuery("#colapseExpandArea").slideToggle();
		if (jQuery("#colapseExpandArea").css("height") != '1px')
		{
			jQuery("#minimizeButton").html("<a class='maximize' href='javascript:;' title='Maximize'>Maximize</a> <a href='javascript:;'><img src='/img/maximize-icon.gif' alt='Maximize' title='Maximize' border='0' align='absmiddle' /></a>");
		}
		else
		{
			jQuery("#minimizeButton").html( "<a class='minimize' href='javascript:;' title='Minimera'>Minimera</a> <a href='javascript:;'><img src='/img/minimize-icon.gif' alt='Minimera' title='Minimera' border='0' align='absmiddle' /></a>" );
		}
	});
	
	/*selected tab becomes unselected and clicked one becomes selected*/
	jQuery("#dataContainer ul li a").click(function(event)
	{
		jQuery("#dataContainer ul li.selected").removeClass();
		jQuery(this).parent().addClass("selected");
	});

	jQuery("#searchContainer ul li a").click(function(event)
	{
		jQuery("#searchContainer ul li.selected").removeClass();
		jQuery(this).parent().addClass("selected");
	});	
	
   bindTableEvents();
    
});




function bindTableEvents() {
	/*this method change 'heart' icon state*/
	jQuery("table th span a").click(function(event) {
		event.preventDefault();
		var className = jQuery(this).parent().attr("class");
		
		if (className==="fav_checked") {
			jQuery(this).parent().attr("class","fav_unchecked");
			jQuery(this).attr("title","Spara kolumn till Min lista");
			jQuery(this).children().attr("alt","Spara kolumn till Min lista");
			eraseCookie(jQuery(this).attr("rel"));
			try {
				if (document.getElementById('printForm').action.indexOf('personalizedListCategory') != -1) {
				  reloadTable('/personalizedListCategory!noDecoratorExecute', 'Uppdaterar Min Lista');
				}
			}	
			catch(e) {
			}
			try {	
				if (document.getElementById('webForm').action.indexOf('personalizedListCategory') != -1) {
				  reloadTable('/web/personalizedListCategory!noDecoratorExecute', 'Uppdaterar Min Lista');
				}
			} catch(e) {
			}
		} else if (className==="fav_unchecked" && createSessionCookie(jQuery(this).attr("rel"),jQuery(this).attr("rel"))) {
			jQuery(this).parent().attr("class","fav_checked");
			jQuery(this).attr("title","Radera kolumn fr\u00E5n Min lista");
			jQuery(this).children().attr("alt","Radera kolumn fr\u00E5n Min lista");
		} else if (className==="fav_checked-last") {
			jQuery(this).parent().attr("class","fav_unchecked-last");
			jQuery(this).attr("title","Spara kolumn till Min lista");
			jQuery(this).children().attr("alt","Spara kolumn till Min lista");
			eraseCookie(jQuery(this).attr("rel"));
			try {
				if (document.getElementById('printForm').action.indexOf('personalizedListCategory') != -1) {
				  reloadTable('/personalizedListCategory!noDecoratorExecute', 'Uppdaterar Min Lista');
				}
			}	
			catch(e) {
			}
			try {	
				if (document.getElementById('webForm').action.indexOf('personalizedListCategory') != -1) {
				  reloadTable('/web/personalizedListCategory!noDecoratorExecute', 'Uppdaterar Min Lista');
				}
			} catch(e) {
			}
		} else if (className==="fav_unchecked-last"  && createSessionCookie(jQuery(this).attr("rel"),jQuery(this).attr("rel"))) {
			jQuery(this).parent().attr("class","fav_checked-last");
			jQuery(this).attr("title","Radera kolumn fr\u00E5n Min lista");
			jQuery(this).children().attr("alt","Radera kolumn fr\u00E5n Min lista");
		}
	});
	
	/*Follwing methods open various popup windows*/
	jQuery('a[rel="popupSelectFromList"]').click( function() {
        window.open(jQuery(this).attr('href'),'refinesearch','resizable=no,location=yes,scrollbars=yes,width=470,height=500,left=100,top=100');
        return false;
    });

	jQuery('a[rel="popupNewspaperInfo"]').click( function() {        
		var link = jQuery(this).attr('href');		
		jQuery.ajax({
			url: link,
			dataType: 'html',
			timeout: 5000,
			error: function() {
				alert('Data har uppdaterats, var v\u00e4nlig ladda om sidan');
			},
			success: function(html) {				
				window.open(link,'newspaperinfo','resizable=no,location=yes,scrollbars=yes,width=770,height=700,left=100,top=100');				
			}	
		});		
        return false;
    });

	jQuery('a[rel="popupWebHelp"]').click( function() {
        window.open(jQuery(this).attr('href'),'webhelp','resizable=no,location=yes,scrollbars=yes,width=770,height=700,left=100,top=100');
        return false;
    });

	jQuery('a[rel="popupPrintHelp"]').click( function() {
        window.open(jQuery(this).attr('href'),'printhelp','resizable=no,location=yes,scrollbars=yes,width=770,height=700,left=100,top=100');
        return false;
    });

	jQuery('a[rel="popupAboutUs"]').click( function() {
        window.open(jQuery(this).attr('href'),'aboutus','resizable=no,location=yes,scrollbars=yes,width=770,height=700,left=100,top=100');
        return false;
    });
    
    jQuery('a[rel="popupModuleMap"]').click( function() {
        window.open(jQuery(this).attr('href'),'modulemap','resizable=no,location=yes,scrollbars=no,width=400,height=700,left=100,top=100');
        return false;
    });
	
	
	try {
	var tableHeaderColumns = jQuery("table tr")[0].cells;
	
	array = new Array(jQuery("table tr")[0].cells.length);
	
 	if (jQuery.browser.msie || jQuery.browser.safari) {
       setCellWidths(jQuery("table tr")[0].cells);
       showCellWidths(jQuery("table tr")[0].cells);
       showCellWidths(jQuery("table tr")[1].cells);
    } else {         
	    var lastWidth = jQuery("td.last").width();
	    var tLength = jQuery("table").width();
	    jQuery("table").width(tLength + 18)
	    jQuery("td.last").width(lastWidth + 18);
    }
    getTableWidth = jQuery("table").width();
	var getTableHeaderWidth = jQuery("table thead tr").width();
	var getTableBodyWidth = jQuery("table tbody tr td");
	jQuery("table").scrollable({tableWidth:getTableWidth, tableHeight:300, columnWidths:array, cellCount:array.length});
	
	
	if (jQuery.browser.msie || jQuery.browser.safari) {
         setHeaderCellWidths(jQuery("#headertable"),jQuery("#headertable tr")[0].cells);
    }

	showArray(array);
	showCellWidths(jQuery("table#headertable tr")[0].cells);
    showCellWidths(jQuery("table#bodytable tr")[0].cells);
    
    } catch(e) {
    }
 }

 function setCellWidths(cells) {
  var s = "";
  var totalWidth = 0;
  for(i=0; i < cells.length; i++ ) {
    array[i] = cells[i].clientWidth;
    s += cells[i].clientWidth + ", ";  
    totalWidth += cells[i].clientWidth;
  }
}

 function showCellWidths(cells) {
  var s = "";
  var totalWidth = 0;
  for(i=0; i < cells.length; i++ ) {
    s += cells[i].clientWidth + ", ";  
    totalWidth += cells[i].clientWidth;
  }
}

 function showArray(arrayToShow) {
  var s = "";
  var totalWidth = 0;
  for(i=0; i < arrayToShow.length; i++ ) {
    s += arrayToShow[i] + ", ";  
    totalWidth += arrayToShow[i];
  }
}

function setHeaderCellWidths(table,cells) {
  table[0].style.removeAttribute("width");
  var totalWidth = 0;
  try {
    jQuery(table[0]).css("min-width",0);
  } catch(e) {
  }

  

  
    jQuery.each(jQuery("table#bodytable tr"),
     function(i, tr) {
         jQuery.each(jQuery(tr).find("td"),
         function(i, td) {
             jQuery(td).width(array[i]);
             jQuery(td).css("width",(array[i]) + "px");
             jQuery(td).css("font-size","7pt");
         })
     });
  
  try {
     totalWidth;
    jQuery(table[0]).css("width",(totalWidth));
  } catch(e) {
  }
  
  array = new Array();
  setCellWidths(jQuery("table#bodytable tr")[0].cells);
    for(i=0; i < cells.length; i++ ) {
      if (i == cells.length-1) {
	    cells[i].width= array[i] + 17;
	    jQuery(cells[i]).css("width",(array[i] + 17) + "px");
	    totalWidth += array[i];
	    } else {
		    cells[i].width= array[i];
		    jQuery(cells[i]).css("width",(array[i]) + "px");
		    totalWidth += array[i];
	    }
  }
  
    try {
     totalWidth;
    jQuery(table[0]).css("width",(totalWidth + 17));
  } catch(e) {
  }
  
  
}

// this is method used for customized radio button
function setRadioButtonLook(what, whatRadio)
{
	jQuery(document).ready(function() {		
		jQuery('#first').css({'background' : 'transparent url(/img/radiobutton-bg.gif) 0 0'});
		jQuery('#second').css({'background': 'transparent url(/img/radiobutton-bg.gif) 0 0'});
		//document.getElementById('third').style.background = 'transparent url(/img/radiobutton-bg.gif) 0 0';
		jQuery('#' + what).css({'background' : 'transparent url(/img/radiobutton-bg.gif) 0 21px'});
		jQuery('#' + whatRadio).attr('checked',true);			
		if(what == 'second') {
			jQuery('#searchParam_category').addClass('disabled');
			jQuery('#searchParam_category').attr('disabled', 'disabled');			
			jQuery('#searchParam_theme').addClass('disabled');
			jQuery('#searchParam_theme').attr('disabled', 'disabled');
			jQuery('#searchParam_advertisePackage').addClass('disabled');
			jQuery('#searchParam_advertisePackage').attr('disabled', 'disabled');
			jQuery('#searchParam_mediaType').addClass('disabled');
			jQuery('#searchParam_mediaType').attr('disabled', 'disabled');
		} else {
			jQuery('#searchParam_category').removeClass('disabled');
			jQuery('#searchParam_category').removeAttr('disabled');
			jQuery('#searchParam_theme').removeClass('disabled');
			jQuery('#searchParam_theme').removeAttr('disabled');
			jQuery('#searchParam_advertisePackage').removeClass('disabled');
			jQuery('#searchParam_advertisePackage').removeAttr('disabled');
			jQuery('#searchParam_mediaType').removeClass('disabled');
			jQuery('#searchParam_mediaType').removeAttr('disabled');			
		}		
		//Clear select		
		jQuery('#searchParam_category').attr('selectedIndex', 0);
		jQuery('#searchParam_theme').attr('selectedIndex', 0);
		jQuery('#searchParam_advertisePackage').attr('selectedIndex', 0);
		jQuery('#searchParam_mediaType').attr('selectedIndex', 0);		
	});
	
}

function activateTab(tabName, ajaxReloadDiv) {
	var path = ajaxReloadDiv;
	
	if (!tabName) return;
	
	if (tabName == 'circulation') {
		tabAddressSuffix = "/yearlyCirculation?year=2008";
		jQuery(path).load(tabAddressSuffix);
  		return false;

    	// TODO: Update address
		newLocation = '' + window.location;
		// alert('newLocation=' + newLocation);
		baseUrlEndIdx = newLocation.lastIndexOf('/');
		if (baseUrlEndIdx < 0)
		  return;
		baseUrl = newLocation.substring(0, baseUrlEndIdx);
		// window.location = baseUrl + tabAddressSuffix;
	}	
}


/**
 * This javascript function submits the specified form. If additional parameters are specifed they are
 * added as hidden inputs.
 * @param formId The id of the form to submit.
 * @param keyValuePairs Additional key/value pairs.
 */
function formSubmit() 
{

        if(formSubmit.arguments.length <= 0)
        {
                throw "Invalid number of arguments";
        }
        var form = document.getElementById(formSubmit.arguments[0]);

        if(form == null)
        {
                throw "Invalid form";
        }     

        if (formSubmit.arguments[1] != null) 
        {
        	for(var i=1; i<formSubmit.arguments.length; i=i+2)
        	{
	        	newField = document.createElement("input");
				newField.type = "hidden";
				newField.name = formSubmit.arguments[i];
				newField.value = formSubmit.arguments[i+1];
				form.appendChild(newField);
				
			}
        }        
        form.submit();
}

/**
 * This function resets all input fields (<input> HTML elements) 
 * and drop-down lists (<select> HTML elements).
 */
function formReset(divId) 
{
	form = document.getElementById(divId);

	try {
	selects = form.getElementsByTagName('select');
	for(i=0;i<selects.length;i++) {
		selects[i].value="";     
	}
   } catch(err) {
   }

	try {
	inputs = form.getElementsByTagName('input');
	for(i=0;i<inputs.length;i++) {
	      if(inputs[i].type == 'hidden' || inputs[i].name == 'searchParam.extendedSearch' || inputs[i].name == 'webSearchParam.extendedSearch' ) continue;
	      if(inputs[i].type == 'checkbox'){
	  inputs[i].checked = false;
  } else  {
		inputs[i].value="";     
	}
	}
   } catch(err) {
   }
}

/**
 * Counts unique newspapers retrieved after search 
 **/
function newspaperCount() {
    // Populating result count
      var anArray = new Array();
	  jQuery('table#dataTable tr td:first-child').each(function(){
	          anArray.push(jQuery(this).html());
	        });
	        
	   var newArray = new Array();
	   
	   jQuery.each(anArray,function(n,val){
	   if(jQuery.inArray(val,newArray)===-1){
	    newArray.push(val);
	   }	       
	     });
	   jQuery('#resultCount').html(newArray.length);       
}

/**
 * Ajax form submission.
 */
 function ajaxFormSubmit(div) {
	   jQuery("#overlay").get(0).style.display="block";
	   jQuery('#sorting').html("<div id='mbox'><div align='right'>Laddar s\u00f6kresultat</div></div>");
	 
	    jQuery(div).ajaxSubmit(function (data){
    	       jQuery("#overlay").get(0).style.display="none";
			   jQuery('#dataContainer').html(data);
               bindTableEvents();
 	    });
	
	    jQuery(div).ajaxError(function (data){
		       jQuery("#overlay").get(0).style.display="none";
		       bindTableEvents();
	     });
 }
 
 
 function showWait() {
	   jQuery("#overlay").get(0).style.display="block";
	   jQuery('#sorting').html("<div id='mbox'><div align='right'>Laddar s\u00f6kresultat</div></div>");
}
 
