/* ALL JS STANDARD FUNCTION FOR THE HTS(D) Presenation Module */
/* the following code is needed by the location selector page */
var currentLocationToShow = undefined;
function showLocation(id){
	if(id != undefined && id != ""){
		if( currentLocationToShow != undefined && currentLocationToShow != "" ){
			$(currentLocationToShow).hide();
		}
		if($(id)){
			$(id).show();
			currentLocationToShow = id;
		}
	}
}

/*  form check stuff for form editor */

var checkFormularErrorMessage = 'please fill all mandatory form elements';
var extendedFormErrorMessageMandatoryError = 'Please fill all mandatory form elements: ';
var extendedFormErrorMessageInvalidError   = 'Please correct all invalid form entries: ';
    function checkFormular(elem) {
        var formObj  = elem.form;
        var frmElem  = formObj.elements, resEmpty = [], resInval = [];
        var valRegEx = {
            numbercheck: "\\d+",
            emailcheck:  "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+"
        }
        for (var i=0,len=frmElem.length;i<len;i++){
            var elem = frmElem[i];
            if (elem.type=='radio' && $A(resEmpty).indexOf(elem.name)==-1 && $A(resInval).indexOf(elem.name)==-1) {
                var lst = $A(frmElem[elem.name]);
                if (lst.detect(function(s){return s.getAttribute('mandatory')=='true'})
                 &&!lst.detect(function(s){return s.checked})) {
                    resEmpty.push(elem.name);
                }
            } else if (elem.type=='checkbox' && elem.getAttribute('mandatory')=='true' && !elem.checked) {
                resEmpty.push(elem.name);
            } else if (elem.type.indexOf('text')!=-1||elem.type=='password'){
                if (elem.getAttribute('mandatory') && !elem.value){
                    resEmpty.push(elem.name);
                }
                if (elem.value && elem.getAttribute('validation')!=null && valRegEx[String(elem.getAttribute('validation')).toLowerCase()]){
                    if (!(new RegExp("^"+valRegEx[String(elem.getAttribute('validation')).toLowerCase()]+"$")).test(elem.value)){
                        resInval.push(elem.name);
                    }
                }
            } else if (elem.type.indexOf('select')!=-1){
                if (elem.getAttribute('mandatory') && (elem.selectedIndex==-1
                    || !elem.options[elem.selectedIndex].value)){
                     resEmpty.push(elem.name);
                }
            }
        }

        if (resEmpty.length>0||resInval.length>0){
            var alertErrorMessage = '';
            if (resEmpty.length>0) alertErrorMessage += extendedFormErrorMessageMandatoryError+'\n\n'+resEmpty.join(',\n')+'\n\n\n';
            if (resInval.length>0) alertErrorMessage += extendedFormErrorMessageInvalidError + '\n\n'+resInval.join(',\n')+'\n\n\n';
            alert(alertErrorMessage);
            return false;
        }
        else {
            formObj.submit();
        }
    }

function showVideo (videoTextualId, videowidth, videoheight, windowwidth, windowheight) {
	var videourl = "/hts/get/params_W0/"+videoTextualId;
	var videoWin = window.open("about:blank", 'Video', 'width='+windowwidth+',height='+windowheight+',left=100,top=200' );
	videoWin.document.open('text/html');
	videoWin.document.write('<html><head><title>HTS</title>\n');
	videoWin.document.write('<style>a , a:link , a:visited , a:active { font-size:12px; text-decoration:underline; color:#407BB7; font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; }\n');
	videoWin.document.write('a:hover { text-decoration:none; }</style>\n');
	videoWin.document.write('</head><body><center>\n');
	videoWin.document.write('<object classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A" width="'+videowidth+'" height="'+videoheight+'">\n');
    videoWin.document.write('<param name="src" value="'+videourl+'"></param>\n');
    videoWin.document.write('<param name="filename" value="'+videourl+'"></param>\n');
    videoWin.document.write('<param name="type" value="video/mpeg"></param>\n');
    videoWin.document.write('<embed src="'+videourl+'" type="video/mpeg" width="'+videowidth+'" height="'+videoheight+'"></embed>\n');
    videoWin.document.write('</object>\n');
    videoWin.document.write('<br />&nbsp;<br /><a href="'+videourl+'">Download</a>\n');
	videoWin.document.write('</center></body></html>\n');
	videoWin.document.close();
	if(videoWin == undefined){
		alert("Bitte Pop up Blocker deaktivieren / please deactivate your pop up blocker");
	}
  	videoWin.focus();	
}


/* Preload Images */

Bild01 = new Image();
Bild01.src = "../../images/submenu_drop.png";

Bild02 = new Image();
Bild02.src = "../../images/submenu_drop_over.png";

Bild03 = new Image();
Bild03.src = "../../images/submenu_nodrop.png";

Bild04 = new Image();
Bild04.src = "../../images/submenu_nodrop_over.png";

/* pageflipper */

var allItemBrowserStatusObjectsArray = new Array();
var itemsPerPage = 8;

function getItemBrowserStatusObject(browserId){
	for(var i = 0 ; i < allItemBrowserStatusObjectsArray.length ; i++){
		if(allItemBrowserStatusObjectsArray[i].browserId == browserId){
			return allItemBrowserStatusObjectsArray[i]; 
		}
	}
	//no object found yet, create new one
	var newBrowserObject = {browserId:browserId,currentPage:0,totalResults:0,pictureObjectArray:new Array()};
	//add to holder array
	allItemBrowserStatusObjectsArray.push(newBrowserObject);
	return newBrowserObject;
}

function initItemBrowser(browserId,itemNameDivPrefix,flipperControlsDiv1Id,flipperControlsDiv2Id){
	var statusObject = getItemBrowserStatusObject(browserId);
	statusObject.currentPage = 0;
	var browserDivElement = $(browserId);
	var allChildDivs = browserDivElement.getElementsByClassName('listitem');
	statusObject.allChildDivsArray = allChildDivs;
	statusObject.totalItemCount = allChildDivs.length;
	statusObject.totalPages = Math.ceil(statusObject.totalItemCount/itemsPerPage);
	
	statusObject.controlsDiv1 = $(flipperControlsDiv1Id);
	statusObject.controlsDiv2 = $(flipperControlsDiv2Id);
	
	displayItemBrowserPageNum(browserId,0);
}

/* pageNum is zero based! */
function displayItemBrowserPageNum(browserId , pageNum){
	var statusObject = getItemBrowserStatusObject(browserId);
	if(pageNum >= 0 && statusObject.totalPages > pageNum){
		statusObject.currentPage = pageNum;
		updateItemBrowserControls(browserId);
	}
	
	displayItemBrowserItems(browserId , pageNum*itemsPerPage , (pageNum*itemsPerPage)+itemsPerPage-1 );
}

function displayItemBrowserItems(browserId,startItemIndex,endItemIndex){
	var statusObject = getItemBrowserStatusObject(browserId);
	var childDivs = statusObject.allChildDivsArray;
	for( var i = 0 ; i < childDivs.length ; i++){
		if(i >= startItemIndex && i <= endItemIndex){
			childDivs[i].show();
		} else {
			childDivs[i].hide();
		}
	}
}

function updateItemBrowserControls(browserId){
	var statusObject = getItemBrowserStatusObject(browserId);
	var fliperControlsHTML = '';
	//var nextPageText = "N&auml;chste Seite";
	//var firstPageText = "Erste Seite";
	//var lastPageText = "Letzte Seite";
	//var previousPageText = "Vorherige Seite";
		
	//if(language == 'en'){
		//fliperControlsHTML = '<span>page '+(statusObject.currentPage+1)+' from '+statusObject.totalPages+'</span>';
		//var nextPageText = "next page";
		//var firstPageText = "first page";
		//var lastPageText = "last page";
		//var previousPageText = "previous page";
	//} else {
		fliperControlsHTML = '<span>'+pageText+' '+(statusObject.currentPage+1)+' ' + fromText + ' ' +statusObject.totalPages+'</span>';
	//}
	
	if( statusObject.currentPage > 0){
		fliperControlsHTML += '<a href="javascript:displayItemBrowserPageNum(\''+browserId+'\',0);"><img src="../../images/button_first.png" alt="'+firstPageText+'" /></a>';
		fliperControlsHTML += '<a href="javascript:displayItemBrowserPageNum(\''+browserId+'\','+(statusObject.currentPage-1)+');"><img src="../../images/button_prev.png" alt="'+previousPageText+'" /></a>';
	} else {
		fliperControlsHTML += '<img src="../../images/button_first_n.png" alt="'+firstPageText+'" />';
		fliperControlsHTML += '<img src="../../images/button_prev_n.png" alt="'+previousPageText+'" />';
	}
	
    if( statusObject.currentPage+1 < statusObject.totalPages){ 
    	fliperControlsHTML += '<a href="javascript:displayItemBrowserPageNum(\''+browserId+'\','+(statusObject.currentPage+1)+');"><img src="../../images/button_next.png" alt="'+nextPageText+'" /></a>';
    	fliperControlsHTML += '<a href="javascript:displayItemBrowserPageNum(\''+browserId+'\','+(statusObject.totalPages-1)+');"><img src="../../images/button_last.png" alt="'+lastPageText+'" /></a>'; 
   	} else {
   		fliperControlsHTML += '<img src="../../images/button_next_n.png" alt="'+nextPageText+'" />';
   		fliperControlsHTML += '<img src="../../images/button_last_n.png" alt="'+lastPageText+'" />';
   	}
    
	statusObject.controlsDiv1.update(fliperControlsHTML);
	statusObject.controlsDiv2.update(fliperControlsHTML);
}


/* COOKIE CHECK  */
function _cookiesAreEnabled() {
  SetCookie( "foo", "bar" );
  if ( GetCookie( "foo" ) ) {
    DeleteCookie( "foo" );
    return true;
  } else {
    return false;
  }
}
navigator.cookiesAreEnabled = _cookiesAreEnabled;

function GetCookie( name ) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while ( i < clen ) {
    var j = i + alen;
    if ( document.cookie.substring(i, j) == arg ) return getCookieVal(j);
    i = document.cookie.indexOf( " ", i ) + 1;
    if ( i == 0 ) break;
  }
  return null;
}

function DeleteCookie( name, path, domain ) {
  if ( GetCookie( name ) ) {
    document.cookie = name + "=" +
    ( ( path ) ? "; path=" + path : "" ) +
    ( ( domain ) ? "; domain=" + domain : "" ) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function SetCookie( name, value, expires, path, domain, secure ) {
  document.cookie = name + "=" + escape (value) +
  ( ( expires ) ? "; expires=" + expires.toGMTString() : "" ) +
  ( ( path ) ? "; path=" + path : "" ) +
  ( ( domain ) ? "; domain=" + domain : "" ) +
  ( ( secure ) ? "; secure" : "" );
}

/**
 *   Helper function for GetCookie()
 */
function getCookieVal( offset ) {
  var endstr = document.cookie.indexOf ( ";", offset );
  if ( endstr == -1 ) endstr = document.cookie.length;
  return unescape( document.cookie.substring( offset, endstr ) );
}


function isCookiesEnabled() {
    if ( navigator.cookiesAreEnabled() ) {
      	return true
    } else {
    	return false;
    }
}

var imageElemSrc = 'produktbild';
var imageLink1ElemId = 'produktbild_url_1';
var imageLink2ElemId = 'produktbild_url_2';
var callingImagePre = 'produktbild_small_';
function changeProductImage(newsrc) {
	//getting image which should be shown big
	callingImageID = callingImagePre + newsrc;
	callingImageSrc = document.getElementById(callingImageID).src;
	//saving current image
	oldsrc = document.getElementById(imageElemSrc).src;
	//changing images
	document.getElementById(imageElemSrc).src = callingImageSrc;
	document.getElementById(callingImageID).src = oldsrc;
	//changing links
	callingImageLinkSrc = document.getElementById(callingImageID).alt;
	oldlink = document.getElementById(imageLink1ElemId).href;
	document.getElementById(imageLink1ElemId).href = callingImageLinkSrc;
	document.getElementById(imageLink2ElemId).href = callingImageLinkSrc;
	document.getElementById(callingImageID).alt = oldlink;
	
}

