/* $Id: marketplace.js 59330 2010-05-11 11:46:13Z johnarne $ */

function toggleBtnByCheckbox(checkboxName, disabledElement, enabledElement) {
	if (checkboxName.checked) {
		$(disabledElement).show();
		$(enabledElement).hide();
	} else {
		$(disabledElement).hide();
		$(enabledElement).show();
	}
}

loadOverlayWindowWithLogicalName = function (logicalName){
	var url = servletContentPreview+'&logicalName='+logicalName+'&overlay=true';
	loadOverlayWindowDefault(url);
}
loadOverlayWindowWithCID = function (contentItemId){
	var url = servletContentPreview+'&contentItemId='+contentItemId+'&overlay=true';
	loadOverlayWindowDefault(url);
}

loCI = function(contentItemId){
    loadOverlayWindowWithCID(contentItemId);    
}

loadOverlayWindowDefault = function(url){
	if($('dynamicDiv2')){
		hideOverlay('dynamicDiv2');
	}

	//find scrollposition from top - use that to position the popup relative to where the user has scrolled.
	if ( window.pageYOffset ) {
		valueYTop = window.pageYOffset+50;
	}
	else {
		valueYTop = document.body.scrollTop+50;
	}

	new Insertion.Bottom('portal', '<div id="dynamicDiv2" style="position: absolute; top: '+valueYTop+'" />');
	//new Insertion.Before('dynamicDiv2', '<div class="overlayClose" style="position: absolute; top: '+(valueYTop-20)+'"><a onclick="hideOverlay(\'dynamicDiv2\');">x</a></div>');
	setLayerDisplay('dynamicDiv2', false);
	loadOverlayWindow(url, 'dynamicDiv2');
}
function loadOverlayWindow(url, displayDivId){
	//var url = '<xsl:value-of select="$Servlet_ContentPreview"/>&amp;contentItemId='+contentItemId;
	var loadingGif = gfxLocation+'/loading.gif';
	
	// getting window height and width (including scroll)
	if (window.innerHeight && window.scrollMaxY) {
		pageHeight = window.innerHeight + window.scrollMaxY;
		pageWidth = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		pageHeight = document.body.scrollHeight;
		pageWidth = document.body.scrollWidth;
	} else {
		pageHeight = document.body.offsetHeight;
		pageWidth = document.body.offsetWidth;
	}
	//new Insertion.After($(displayDivId).up(), '<div id="overlay"/>');
	if($('mp_root') == null){
		new Insertion.After($(displayDivId).up(), '<div id="mp_root"/>');
	}

	new Insertion.After('mp_root', '<div id="overlay"   style="height:'+pageHeight+';width:'+pageWidth+';"/>');
	if(!$(displayDivId)._loaded){
		if($('portal') == null){
			new Insertion.Top($('mp_root'), '<div id="portal"/>');
		}
		new Insertion.Top('portal', '<img id="overlayImg" style="position: absolute; top: '+valueYTop+'"/>');
		new Ajax.Updater(displayDivId, url, {        
			method: 'get',
			insertion: Insertion.Bottom,
			onLoading: function(){
				$('overlayImg').src = loadingGif;
			},
			onSuccess: function(){
				new Insertion.Before('dynamicDiv2', '<div id="closeBar" class="overlayClose" style="position: absolute; top: '+(valueYTop-22)+'"><a onclick="hideOverlay(\'dynamicDiv2\');">x</a></div>');
			},
			onComplete: function(){

				$('overlayImg').remove();
				setLayerDisplay(displayDivId, true);
				$(displayDivId)._loaded = true;
				$('overlay').writeAttribute('onclick', 'hideOverlay(\''+displayDivId+'\')');
			}

		},
		{asynchronous:true});
	}else{
		setLayerDisplay(displayDivId, true);
	}
}

function hideOverlay(displayDivId){
	setLayerDisplay(displayDivId, false);
	$('overlay').remove();
	$('closeBar').remove();
	$(displayDivId).remove();      // denne var kommentert ut
}

function sortCategory(url){
    var scrollHeight = getScrollHeight();
	var currentURL = url; //''+window.location;
    if (currentURL.indexOf('scrollTo=') > 1) {
        var pos1 = currentURL.indexOf('&scrollTo=');
		var newURL = currentURL.substring(0,pos1);
        location.href = newURL + '&scrollTo='+scrollHeight;
	}
	else {        
        location.href = url + '&scrollTo='+scrollHeight;
	}
}

function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

function login_reload() {
	var currentURL = location.href;
	var loadingGif = gfxLocation+'/loading.gif';
    if(currentURL.endsWith("/login"))currentURL += '&lg=t'; // NETUP-290 partnerside 
    $('formLogin').request({
		parameters: {requestedURL:currentURL},
		onLoading: function(){
			$('dynamicDiv').style.zIndex = 50;
			$('overlay').removeAttribute('onclick');
			new Insertion.Top('portal', '<img id="overlayImg" src="'+loadingGif+'"/>');
		},
		onComplete: function(){
            var didLogin = 'didAjaxLogin=true';
            if(currentURL.indexOf('?') > -1)didLogin = '&'+didLogin;
            else didLogin = '?'+didLogin;
            window.location = currentURL+didLogin;
		}
	});
}

function openWindow(url,width,height) {
	var availheight=((screen.availHeight-height)/2);
	var availwidth=((screen.availWidth-width)/2);
	winStats='resizable=yes,toolbar=no,status=no,location=no,directories=no,menubar=no,';
	winStats+='scrollbars=yes,width='+width+',height='+height;
	if (navigator.appName.indexOf("Microsoft")>=0) {
		winStats+=',left='+availwidth+',top='+availheight;
	}else{
		winStats+=',screenX='+availwidth+',screenY='+availheight;
	}
	floater=window.open(url,"",winStats)
}
function termSearch(formName,letter) {
	document.forms[formName].searchText.value = letter+'*';
	document.forms[formName].submit();
}

function showHide(elementID) {
	var target = document.getElementById(elementID);
	if (target.style.visibility == 'hidden') {
		target.style.visibility = 'visible';
	}else if (target.style.visibility == '') {
		target.style.visibility = 'visible';
	}else{
		target.style.visibility = 'hidden';
	}
}

function showHideAll(ancestorId, decendantClass, toggleId){
	$(ancestorId).select('.'+decendantClass).each(function(s){
		if (toggleId == 1) {
			s.show();
			$('show_'+ancestorId).hide();
			$('hide_'+ancestorId).show();
		}
		else {
			s.hide();
			$('show_'+ancestorId).show();
			$('hide_'+ancestorId).hide();
		}
	});
}

var httpRequest;
//httpRequest = getHTTPObject();

function getHTTPObject(){
  var x=null;
  try{
    x=new ActiveXObject("Msxml2.XMLHTTP")
  }catch(e){
    try{
      x=new ActiveXObject("Microsoft.XMLHTTP")
    } catch(oc){
      x=null
    }
  }
  if(!x && typeof XMLHttpRequest != "undefined") {
    x=new XMLHttpRequest()
  }
  return x;

}

function ajaxManager() {
	var args = ajaxManager.arguments;
	//var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP"): new XMLHttpRequest();
	httpRequest = getHTTPObject();

	switch (args[0]) {
		case "load_page":
			if (httpRequest) {
			httpRequest.onreadystatechange = function()
				{
				if (httpRequest.readyState == 4 && httpRequest.status == 200)
					{
//                    alert('args[3] '+args[3]);
                    motherElement = document.getElementById(args[3]);
					motherElement.style.visibility = 'visible';
					element = document.getElementById(args[2]);
					element.innerHTML = httpRequest.responseText;

					// update shoppingCartNrItems
					document.getElementById('openCart').innerHTML = document.getElementById('openCartHTML').innerHTML;

					}
          if (httpRequest.readyState == 2){
					motherElement = document.getElementById(args[3]);
					motherElement.style.visibility = 'visible';
					element = document.getElementById(args[2]);
					element.innerHTML = 'Loading...';
          }
				}
			httpRequest.open("GET", args[1], true);
			httpRequest.send(null);
			}
			break;
		case "preload":
			ajaxManager('load_js', 'scripts/glide.js');
			break;
    case "evaluate":
 			if (httpRequest) {
			httpRequest.onreadystatechange = function()
				{
				if (httpRequest.readyState == 4 && httpRequest.status == 200)
					{
          //callbackFunction
          eval(args[2]);
 					}
				}
			httpRequest.open("GET", args[1], true);
			httpRequest.send(null);
			}
      break;
	}
}

/**
* Shows total Nr of Items (Response as html, could be also xml).
**/
function getTotalNrOfItems(){
  //response = httpRequest.responseXML.documentElement;
  //totalPrice = response.getElementsByTagName('totalPrice')[0].firstChild.data;
  //document.getElementById['shoppingCartNrItems'].innerHTML = httpRequest.responseText;
  shoppingCartNrItems.innerHTML = httpRequest.responseText;

}

function toggleCategory(categoryId) {
	var wrapper = document.getElementById('children_'+categoryId);
	var image = document.getElementById('image_'+categoryId);
	if (wrapper.style.display == 'none' || wrapper.style.display == '') {
		wrapper.style.display = 'block';
		image.src = gfxFolder+'arrow_down.gif';
	}else{
		wrapper.style.display = 'none';
		image.src = gfxFolder+'arrow.gif';
	}
}

function checkEcatalogue(categoryIdString,formName) {
	var theForm = document.forms[formName];
	var checkedMain = document.getElementById(categoryIdString);
	for (i=0;theForm.length>i;i++){
		var element = theForm.elements[i];
		var elementid = element.id;
		if (element.id.indexOf(categoryIdString) > -1 && elementid != categoryIdString){
			if (element.checked == true && checkedMain.checked == false) {
				element.checked = false;
				element.disabled = false;
			} else {
				element.disabled = true;
				element.checked = true;
			}
		}
	}
}

function resetEcatalogue(formName) {
	var theForm = document.forms[formName];
	for (i=0;theForm.length>i;i++){
		var element = theForm.elements[i];
		if (element.type == 'checkbox') {
			element.checked = false;
			element.disabled = false;
		}
	}
}



ajaxSubmitForm = function(url, formId, resultId, resultTmpText) {
//    alert('ajaxSubmitForm ');
    new Ajax.Request(url, {
        parameters: $(formId).serialize(),
        onSuccess: function(transport) {
            <!--$('submitBtn').disabled = false;-->
            $(resultId).update(transport.responseText);
      },
      onLoading: function(){
        $(resultId).update(resultTmpText);
      }
    });


}


/***********************************************
* Highlight Table Cells Script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Specify highlight behavior. "TD" to highlight table cells, "TR" to highlight the entire row:
var highlightbehavior="TR"

var ns6=document.getElementById&&!document.all
var ie=document.all

function changeto(e,highlightcolor){
source=ie? event.srcElement : e.target
if (source.tagName=="TABLE")
return
while(source.tagName!=highlightbehavior && source.tagName!="HTML")
source=ns6? source.parentNode : source.parentElement
if (source.style.backgroundColor!=highlightcolor&&source.id!="ignore")
source.style.backgroundColor=highlightcolor
}

function contains_ns6(master, slave) { //check if slave is contained by master
/* JP: Fucks up Firefox
while (slave.parentNode)
if ((slave = slave.parentNode) == master)
return true;*/
return false;
}

function changeback(e,originalcolor){
if (ie&&(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="ignore")||source.tagName=="TABLE")
return
else if (ns6&&(contains_ns6(source, e.relatedTarget)||source.id=="ignore"))
return
if (ie&&event.toElement!=source||ns6&&e.relatedTarget!=source)
source.style.backgroundColor=originalcolor
}