/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * 
 * GLOBAL VARS
 * 
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */


/**
 *  Timeout for automatic page jump
 */
var TIMEOUT_PAGING = 1500;

/**
 * Thread in dem der Reload der Seite läuft
 */
var pagingProcess = null;

var globalHostVar = '/';
var text2RenderGlobal = "Die hei&szlig;e Sonne qu&auml;lt Max auf dem K&uuml;stenweg";

var hiddenInputRenderText = document.getElementById("renderTextDefault");
if (hiddenInputRenderText!=null) {
	text2RenderGlobal = hiddenInputRenderText.value;
}



QUERYSTRING = window.location.href; 
var teilstrings = QUERYSTRING.split("&");
var sortBy = "fs_rating";
for(x=0;x<teilstrings.length;x++) {
	if(teilstrings[x].match(/\bsortBy=collection\b/g)) {
		sortBy = "collection";
	}
}

/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * 
 * FUNCTIONS
 * 
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

/**
 * Weiterleiten zur Seite; gibt Zeit, mehrstellige Zahlen einzutippen
 * nutzt den Wert TIMEOUT_PAGING; wird die enter-Taste verwendet, wird die Weiterleitung sofort ausgeführt
 */
function executeOtherPagingAfterWait(event, pagename, pageno, id, first, second, suchennach) {
	
	var timeout = TIMEOUT_PAGING;
	if(event.keyCode && event.keyCode=='13') {
		timeout = 0;
	}
	if(pagingProcess != null) {
		clearTimeout(pagingProcess);
		pagingProcess = null;
	}
	pagingProcess = setTimeout(function() {executeOtherPaging(pagename, pageno, id, first, second, suchennach)}, timeout );
}

/**
 * Weiterleiten zur Seite, wenn gültige Zahl angegeben
 */
function executeOtherPaging(pagename, pageno, id, first, second, suchennach) {
	if(!isNaN(pageno)) {
		var actionUrl = globalHostVar+pagename;	
		if(suchennach == "" || suchennach == 'undefined') {
			window.location = actionUrl+'?id=' + id + '&first=' + first + '&second=' + second + '&pageno=' + pageno;
		} else {
			window.location = actionUrl+'?id=' + id + '&first=' + first + '&second=' + second + '&pageno=' + pageno + "&suchennach=" + suchennach;
		}
	}
}
/**
 * @deprecated ersetzt durch executeOtherPaging
 */
function executeNextOtherPage(event, pagename, pageno, id, first, second, suchennach) {
	var actionUrl = globalHostVar+pagename;	
	if(suchennach == "") {
		window.location = actionUrl+'?id=' + id + '&first=' + first + '&second=' + second + '&pageno=' + pageno;
	} else {
		window.location = actionUrl+'?id=' + id + '&first=' + first + '&second=' + second + '&pageno=' + pageno + "&suchennach=" + suchennach;
	}
}

/**
 * Function for returning keywordSearch-Results
 */
function executeKeywordsSearchRequest(keywordString) {
	
	var actionUrl = globalHostVar+'image_results.htm';
	var localhostUrl = actionUrl+'?isKeywordSearch=true';
	var keywordString4Search = keywordString;
	
	if (keywordString4Search != null) {
		localhostUrl = localhostUrl + '&keywordsString='+keywordString4Search;
	}
	
	window.location = actionUrl+'?isKeywordSearch=true&isAjaxRequest=true';
	
	var callback =
	{
		success: function(o) {
			//alert("success")
			},
		failure: function(o) {
			//alert("search could not be executed")
			},
		argument: [null, null, null]
	}
	
    YAHOO.util.Connect.asyncRequest('POST', localhostUrl, callback, null);
	
}

/**
 * Aufruf der Suchseite mit der Entertaste
 * @param e Das JS-KeyEvent, im Mozilla automatisch uebergeben, im IE das window.event-Objekt
 * @version 2009-05-06
 * @return
 */
function executeGetNextPageAfterWait(event, sumPages, pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, itemsPerPage4AgenciesCarousel, anker) {
	var timeout = TIMEOUT_PAGING;

	if(event.keyCode && event.keyCode=='13') {
		timeout = 0;
	}
	if(pagingProcess != null) {
		clearTimeout(pagingProcess);
		pagingProcess = null;
	}
	if(currentPage=="" || isNaN(currentPage)) {
		return;
	}
	else if(parseInt(currentPage) > parseInt(sumPages)) {
		currentPage = sumPages;
	}
	else if(parseInt(currentPage) <1) {
		currentPage = 1;
	}
	currentPage = parseInt(currentPage);
	
	pagingProcess = setTimeout(function () {
			executeGetNextPage(pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, itemsPerPage4AgenciesCarousel, anker)
		}, 
		timeout
	);	
}

function executeManufacturerPageOnEnter(e, sumPages, pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, agencyname, anker) {	if(e.keyCode && e.keyCode == 13) { // Enter-Taste (oder auch YAHOO.util.KeyListener.KEY.ENTER)
		if(isNaN(currentPage)) {
			return;
		}
		else if(parseInt(currentPage) > parseInt(sumPages)) {
			currentPage = sumPages;
		}
		else if(parseInt(currentPage) <1) {
			currentPage = 1;
		}
		currentPage = parseInt(currentPage);
		executeManufacturerGetNextPage(pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, agencyname);
	}	
}




/**
 * Function for getting a search results page
 * @param pageUrl
 * @param currentPage
 * @param nextBool
 * @param newCount
 * @param previouslyStartedAt
 * @param changed
 * @param sorting
 * @param resultsSize
 * @param itemsPerPage4AgenciesCarousel
 * @param anker
 */
function executeGetNextPage(pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, itemsPerPage4AgenciesCarousel, anker) {
	
	var defPageUrl = 'image_results.htm';
	var fontPageUrl = 'fontlisting.htm';
	var sortByVar = 'sortBy';
	//alert(pageUrl);
	var addCondition = "";
	if (pageUrl == fontPageUrl) {
		try {
			var fontRenderSizeEl = document.getElementById("fontsRenderSize");
			var fontRenderSize = null;
			if (fontRenderSizeEl!=null) {
				fontRenderSize = fontRenderSizeEl.value;
			}
			var persTextEl = document.getElementById("fontListingMyText");
			
			if (persTextEl!=null && persTextEl!=text2RenderGlobal) {
				persText = persTextEl.value;
			}
			addCondition = "&personalText="+persText;
			if (fontRenderSize!=null) {
				addCondition = addCondition + "&fontsRenderSize="+fontRenderSize;
			}
		} catch (t) {
			//alert(t);
		}
		sortByVar = 'fontsSortBy';
	}
	
	if (pageUrl!=null && pageUrl != '') {
		defPageUrl = pageUrl;
	}
	
	//important for correct paging::
	if (newCount == null) {
		newCount = "";
	}
	if (itemsPerPage4AgenciesCarousel == null) {
		itemsPerPage4AgenciesCarousel = "";
	}
	
	var ankerOnPage = "";
	if (anker!=null && anker != ""){
		ankerOnPage = "#"+anker;
	}
	
	var sortingVar = "";
    if (sorting!=null) {
		sortingVar = sorting;
	}
	
	var actionUrl = globalHostVar+defPageUrl;
	
	for(x=0;x<currentPage.length;x++) {
      if ((currentPage.charCodeAt(x) < 48) || (currentPage.charCodeAt(x) > 57)) {
	    currentPage = 1;
	  }
	}
	window.location = actionUrl+'?currentPage='+currentPage+'&getNext='
					  +nextBool+'&itemsPerPage='+newCount+'&previouslyStartedAt='
					  +previouslyStartedAt+'&changed='+changed
					  +'&'+sortByVar+'='+sortingVar
					  +'&resultsSize='+resultsSize+addCondition
					  +'&itemsPerPageAC='+itemsPerPage4AgenciesCarousel + ankerOnPage;
}


function executeGetNextPage2(pageUrl, gotoPage, itemsPerPage, offset, sortBy, resultsSize, previouslyStartedAt, changed) {
	window.location = pageUrl+'?' 
			+'&gotoPage='+gotoPage
			+'&itemsPerPage='+itemsPerPage
			+'&offset='+offset
			+'&sortBy='+sortBy
			+'&previouslyStartedAt='+previouslyStartedAt
			+'&changed='+changed
			+'&resultsSize='+resultsSize;
}

function executeGetNextPage2Manu(pageUrl, gotoPage, itemsPerPage, offset, sortBy, resultsSize, previouslyStartedAt, changed, agencyName) {
	window.location = pageUrl+'?' 
			+'&gotoPage='+gotoPage
			+'&itemsPerPage='+itemsPerPage
			+'&offset='+offset
			+'&sortBy='+sortBy
			+'&previouslyStartedAt='+previouslyStartedAt
			+'&changed='+changed
			+'&resultsSize='+resultsSize
			+'&agencyname='+agencyName;
}

function executeGetOtherSize(pageUrl, resultsSize, agencyName) {
	window.location = pageUrl+'?' 
			+'&resultsSize='+resultsSize
			+'&agencyname='+agencyName;
}

/**
 * Function for getting a manufacturer search results page
 */
function executeManufacturerGetNextPage(pageUrl, currentPage, nextBool, newCount, previouslyStartedAt, changed, sorting, resultsSize, agencyname) {
  
  var defPageUrl = 'agencies_results.htm';
  
  if (pageUrl!=null && pageUrl != '') {
    defPageUrl = pageUrl;
  }
  
  var defCount = 75;
  if (newCount == null) {
    newCount = defCount;
  }
  
  
	var sortingVar = "";
	if (sorting!=null) {
		sortingVar = sorting;
	}
	
	
  var actionUrl = globalHostVar+defPageUrl;
  window.location = actionUrl+'?currentPage='+currentPage+'&getNext='
            +nextBool+'&itemsPerPage='+newCount+'&previouslyStartedAt='
            +previouslyStartedAt+'&changed='+changed+'&sortBy='+sortingVar
            +'&resultsSize='+resultsSize + '&agencyname='+agencyname;
}



/**
 * Function for executing a tab switch from/to picture/cd results
 */
function executeTabSwitch(pageUrl, cdCount) {
	
	var actionUrl = globalHostVar+pageUrl;             //+'?sortBy='+sortBy;
	var addObjectIdsString = '';
		//if (objectIdsList!= null && objectIdsList != '') {
		//	addObjectIdsString = '?cdPks='+objectIdsList;
		//}
	
	window.location = actionUrl+addObjectIdsString;
}

/**
 * Function for switching to a picture details page /w checking whether a new tab should be opened
 */
function switchToDetailsPage (imgcode, referredFrom, showMovieClip, openNewTab, maxItemsInMovieClip, referredPK, realm, agency) {
	var pageUrl = 'image_detail.htm';
	var addObjectIdsString = '';
	if(!maxItemsInMovieClip)
		maxItemsInMovieClip = 0;
	
	if(!referredPK)
		referredPK = "";
	
	if(!realm)
		realm = "";
		
	if(!agency)
		agency = "";
	  
	//bitte sortBy weglassen, sonst falsche movieclip sortierung
	  
	addObjectIdsString = '?imgcode='+imgcode+'&referredFrom='+referredFrom+
						'&MovieClip='+showMovieClip+
						'&openNewTab='+openNewTab+
						//'&sortBy='+sortBy+
						'&itemsPerPage='+maxItemsInMovieClip+
						'&referredPK='+referredPK+
						'&realm='+realm+
						'&agency='+agency;
	window.location = pageUrl+addObjectIdsString;
}

/**
 * Function for switching to a picture details page /w checking whether a new tab should be opened
 * AND checking from where we come and whether only cd images shall be displayed in movieClip
 */
function switchToDetailsPageWCD (imgcode, referredFrom, showMovieClip, openNewTab, curCDPK) {
	var pageUrl = 'image_detail.htm';
	var actionUrl = globalHostVar+pageUrl;
	var addObjectIdsString = '';
	
	addObjectIdsString = '?imgcode='+imgcode+'&referredFrom='+referredFrom+
						'&MovieClip='+showMovieClip+
						'&openNewTab='+openNewTab +
						'&curCDPK='+curCDPK;
	
	window.location = actionUrl+addObjectIdsString;
}


/**
 * Function for switching to a cd details page 
 */
function switchToDetailsPageCD (cdPK, referredFrom, openNewTab) {
	var pageUrl = 'compact_discs_detail.htm';
	var actionUrl = globalHostVar+pageUrl;
	var addObjectIdsString = '';
	
	addObjectIdsString = '?cdPK='+cdPK+'&referredFrom='+referredFrom+'&openNewTab='+openNewTab;

	window.location = actionUrl+addObjectIdsString;
}

function switchToDetailsPageFonts(fontPK, referredFrom, openNewTab, itemsPerPage, currentPage) {
	
	
	var pageUrl = 'fontdetails.htm';
	var addObjectIdsString = '';
	if(!itemsPerPage)
	  itemsPerPage = 15;
	   
	
	addObjectIdsString = '?fontProductPK='+fontPK
						+'&referredFrom='+referredFrom
						+'&openNewTab='+openNewTab
						+'&itemsPerPage='+itemsPerPage
						+'&currentPage='+currentPage;
	window.location = pageUrl+addObjectIdsString;
}

function switchToDetailsPageByIdFonts(fontFMDBID, referredFrom, openNewTab, itemsPerPage) {
	var pageUrl = 'fontdetails.htm';
	var addObjectIdsString = '';
	if(!itemsPerPage)
	  itemsPerPage = 15;
	  
	addObjectIdsString = '?fontProductID='+fontFMDBID
						+'&referredFrom='+referredFrom
						+'&openNewTab='+openNewTab
						+'&itemsPerPage='+itemsPerPage;
	
	window.location = pageUrl+addObjectIdsString;
}

function searchByFontShuffleKeyWord(fontFMDBID, keyword) {
	
	var pageUrl = 'fontshuffle.htm';
	var addObjectIdsString = '';
	addObjectIdsString = '?fontProductID='+fontFMDBID
						+'&font.qsearch.keyword='+keyword
						+'&nextFontShuffleStep'
						+'&isShuffleNew=false';
	
	window.location = pageUrl+addObjectIdsString;
}

function newFontShuffle(onCategory){
	var pageUrl = 'fontshuffle.htm';
	var actionUrl = globalHostVar+pageUrl;
	var addObjectIdsString = '';
	addObjectIdsString = '?nextFontShuffleStep='+onCategory;
	window.location = actionUrl+addObjectIdsString;
}

/**
 * Function for persisting the current Carousel position
 */

function saveCarouselPositionToSession(position, number, file) {
	
	var localhostUrl = null;
	var actionUrl = globalHostVar+file;
	
	if (position != null) {
		localhostUrl = actionUrl + '?carouselPosition=' + position + '&carouselNumber=' + number;
	} else {	
		localhostUrl = actionUrl + '?carouselPosition=' + 1 + '&carouselNumber=' + 1;
	}

	//window.location = actionUrl+'?carouselPositionSet=true&isAjaxRequest=true';
	var callback =
	{
		success: function(o) {
			//alert("success")
			},
		failure: function(o) {
			//alert("search could not be executed")
			},
		argument: [null, null, null]
	}

    YAHOO.util.Connect.asyncRequest('POST', localhostUrl, callback, null);
	
	
}
/**
 * Function for scrolling a div automatically to a certain position
 */

function scrollDivAccordingly(imgPosition) {
	
	var scrollToPixel = 0;
	var ourDiv = document.getElementById("liste");
	if (imgPosition!=0) {
		scrollToPixel = imgPosition * 75;
	}	
	ourDiv.scrollLeft = scrollToPixel;
}


/**
 * Function for getting the additional LIs
 */
function executeGetStackImgs(stackId) {
	
	var actionUrl = globalHostVar+'/handleStack.htm';
	var localhostUrl = actionUrl+'?stackId='+stackId;
	
	var callback =
	{
		success: function(o) {
			//alert("success")
			},
		failure: function(o) {
			//alert("search could not be executed")
			},
		argument: [null, null, null]
	}
	
    YAHOO.util.Connect.asyncRequest('POST', localhostUrl, callback, null);
	
}

/**
 * Function for switching to a others details page
 */
function switchToOthersDetailsPage(imgcode, referredFrom, realm) {
	if(realm == "book") {
		realm = "books";
	}
	/**
	 * FIX for LIVE-Server 16.07.09
	 */
	if (realm == "studio" || realm == "Studio") {
		realm = "werkzeuge";
	}
	var pageUrl = "/Werkzeuge/" + realm + '_detail.htm?id=' + imgcode + '&first=&second=';
	
	window.location = pageUrl;
}


/**
 * 
 */
function switchToSpecificPage(pageUrl) {
	if (pageUrl!=null) {
		window.location = pageUrl;
	}
}

function switchToNextNotepad(nameMerkliste) {
	$C.asyncRequest("POST", "notepad_set.htm", { success : function(o) { if(!$C.isCallInProgress(o)) { window.location.reload() } } }, "open=" + escape(nameMerkliste));
}

function executeGetUrlValues(pageUrl, referredFromPage, sorting, resultsSize, index, link) {
	var params = pageUrl 
			+ '?referredFromPage=' + referredFromPage 
			+'&sorting=' + sorting
			+'&resultsSize=' + resultsSize
	
	if(index && index != null) {
		params = params + '&index=' + index;
	}
	
	params = params + '&link=' + link;
	window.location = params;
}

function setLinks(e) {
	YAHOO.util.Event.preventDefault(e); 
	var links = YAHOO.util.Selector.query(".button a.opener");
	for(var x=0;x<links.length;x++) {
		YAHOO.util.Event.addListener(links[x], "click", function(e,ele) { YAHOO.util.Event.stopPropagation(e); window.location = ele.getAttribute("alt"); }, links[x]);	
	}
}	

YAHOO.util.Event.on(window, 'load', setLinks);
