/*
 * DD Framework Dateien
 * 
 * Dieser code steht unter dem Urheberrecht von David Lee, http://www.leed.ch. 
 * Die Drill-Quest GmbH hat ein uneingeschränktes Nutzungsrecht für diesen Code.
 * Änderungen sollten nicht in dieser Datei, sonder in einer seperaten, nachfolgenden js
 * Datei geschrieben werden. 
 * 
 */ 

/*** Graphical Functions ***/

function showDiv(divName){
	document.getElementById(divName).style.visibility = "visible";
};

function hideDiv(divName){
	document.getElementById(divName).style.visibility = "hidden";
};


/*** Basic Functions ***/

function getRandom( min, max ) {
    if( min > max ) {
	    return( -1 );
    }
    if( min == max ) {
    	return( min );
    }
    return( min + parseInt( Math.random() * ( max-min+1 ) ) );
};


/*** Functions for Enforcing Input fields ***/

function forceInt(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/[^0-9]/g, "");

	if(inputText.length > 15){
		inputText = inputText.substring(0, 15);
	}
	ziel.value = inputText;
};

function forceDecimal(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/[^0-9\.\`]/g, "");
	if(inputText.search(/\./) != -1){
		inputArr = inputText.split(".");
		
		if(inputArr[0].length > 15){
			inputArr[0] = inputArr[0].substring(0, 15);
		}
		if(inputArr[1].length > 8){
			inputArr[1] = inputArr[1].substring(0, 8);	
		}
		inputText = inputArr[0]+"."+inputArr[1];
	}else{
		if(inputText.length > 15){
			inputText = inputText.substring(0, 15);
		}
	}
	ziel.value = inputText;
};

function forceCurrency(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/[^0-9\.\`]/g, "");
	if(inputText.search(/\./) != -1){
		inputArr = inputText.split(".");
		
		if(inputArr[0].length > 15){
			inputArr[0] = inputArr[0].substring(0, 15);
		}
		if(inputArr[1].length > 2){
			inputArr[1] = inputArr[1].substring(0, 2);	
		}
		inputText = inputArr[0]+"."+inputArr[1];
	}else{
		if(inputText.length > 15){
			inputText = inputText.substring(0, 15);
		}
	}
	ziel.value = inputText;
};

function forceEmail(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/[^a-zA-Z0-9\.|-|\-\_äöü@]/g, "");
	if(inputText.length > 95){
		inputText = inputText.substring(0, 95);
	}
	ziel.value = inputText;
};

function forceUrl(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/http:\/\//g, "");
	inputText = inputText.replace(/[^a-zA-Z0-9\.|-|_äöü\/\?\&\=]/g, "");
	inputText = "http://"+inputText;
	if(inputText.length > 130){
		inputText = inputText.substring(0, 130);
	}
	
	ziel.value = inputText;
}

function forcePhone(ziel){
	var inputText = ziel.value;
	inputText = inputText.replace(/http:\/\//g, "");
	inputText = inputText.replace(/[^0-9\-\+\(\) ]/g, "");
	if(inputText.length > 40){
		inputText = inputText.substring(0, 40);
	}
	ziel.value = inputText;	
}

function forceString(ziel, grosse){
	var inputText = ziel.value;

	if(inputText.length > grosse){
		inputText = inputText.substring(0, grosse);
	}
	ziel.value = inputText;	
}

function addressCheck(str){
	var at='@';
	var dot='.';
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
		return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(' ')!=-1){
		return false;
	}
	return true;
};

/*** functions for marking table rows with input fields***/

function setWhiteRow(field, text){
	document.getElementById(field).className = 'formfield';
	document.getElementById(text).className = '';
};

function setRedRow(field, text){
	document.getElementById(field).className = 'formfieldred';
	document.getElementById(text).className = 'boldred';
};

/*** functions for SpamGuard ***/

function resetSpamGuard(){
	document.getElementById('spamGuardReply').value = 'false';
	document.getElementById('spamGuardIF').src = 'sg_check.php?type=newspamguard';
};

function checkSpamGuard(functionName){
	var userInput = document.getElementById('spamGuardAnswer').value;
	var spamGuardCode = document.getElementById('spamGuardCode').value;
	document.getElementById('spamGuardIF').src = 'sg_check.php?type=spamguardcheck&function='+functionName+'&spamguardanswer='+userInput+'&spamguardcode='+spamGuardCode;
};

/*** Stylesheet Functoins ***/

function setActiveStyleSheet(title) {
   var i, active;
   var aktuell = new Date();
   for(i=0; (active = document.getElementsByTagName("link")[i]); i++) {
	 if(active.getAttribute("rel").indexOf("style") != -1
        && active.getAttribute("title")) {
       active.disabled = true;
       if(active.getAttribute("title") == title) active.disabled = false;
     }
   }
   stamp= aktuell.getTime() / 1000;
   createCookie("ddStyle", title, 100);
   createCookie("ddStyleDate", stamp, 100);
};

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
};

/*** JQuery Addons ***/

function vertSlide(JQname, self){
	$(JQname).animate({width: 'toggle', opacity: 'toggle'}, 'slow');
};

function startModal(){
	$('body').append('<div id="modal"></div>');
	//Get the screen height and width  
    var maskHeight = $(document).height();  
    var maskWidth = $(window).width();  
       
    //Set height and width to mask to fill up the whole screen  
    $('#modal').css({'width':maskWidth,'height':maskHeight});  
    //transition effect       
    $('#modal').fadeIn("fast");      
};

function stopModal(){
	$('#modal').remove();
};

function openModalWindow(divName){
	startModal();
	$('#modal').append(
		'<div id="modalWindow">'
			+'<div id="modalWindowHead"></div>'
			+'<div id="modalWindowBody"></div>'
		//	+'<div id="modalWindowFoot"></div>'
		+'</div>');
	//Get the window height and width  
	var contentDiv = document.getElementById(divName).innerHTML;
	var contentH = $('#'+divName).height();
	var contentW = $('#'+divName).width();
    var winH = $(window).height();  
	if(window.pageYOffset){
		var scrollTop = window.pageYOffset;
	}else{
		var scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	var targetTop = winH/2-contentH/2+scrollTop;
	$('#modal').queue(function(){
    	$('#modalWindow').animate({
							width: contentW+4,
							height: contentH+4,
							top: targetTop
						}, "slow");
		$('#modalWindow').fadeIn('slow');
		$('#modalWindowHead').append('<a href="javascript:closeModalWindow()"><img src="pics/system/closemodal.png" alt="Close" /></a>');
		$('#modalWindowBody').append(document.getElementById(divName).innerHTML);
	});
};

function resizeModalWindow(newWidth, newHeight){
    var winH = $(window).height();  
	var targetTop = winH/2-newHeight/2;
	$('#modalWindow').animate({
							width: newWidth,
							height: newHeight,
							top: targetTop
						}, "slow");
	$('#modalWindowBody').animate({
							width: newWidth,
							height: newHeight
						}, "slow");
};

function closeModalWindow(){
	$('#modalWindow').remove();
	stopModal();
};

var galCloseTimer = new Array();
var galArrSize = new Array();
var galCurrPic = new Array();
var galArray = new Array();

function makeModalGallery(name, picArr){
	makeGallery(name, "modalWindowBody", picArr, "true");
};

function makeGallery(name, parentId, picArr, modal){
	var modalName = '';
	var modalCaption = '';
	if(modal == "true"){
		startModal();
		$('#modal').append(
			'<div id="modalWindow">'
				+'<div id="modalWindowHead"></div>'
				+'<div id="modalWindowBody"></div>'
			+'</div>');
		modalName = "Modal";
		modalCaption = '<div id="'+parentId+'Caption" class="modalCaption"></div>';
	}
	//first preload all pictures
	galArray[name] = picArr;
	galArrSize[name] = picArr.length;
	galCurrPic[name] = 0;
	//Draw the Frame
	var picRow = '';
	for(var i = 0; i < picArr.length; i++){
		picRow = '<img src="'+picArr[i][0]+'" alt="'+picArr[i][1]+'" id="galPic'+name+i+'" width="'+picArr[i][4]+'" height="'+picArr[i][5]+'" class="hiddenPic" />'
				+picRow;
	}
	
	$('#'+parentId).append('<div id='+name+' class="galContainer" onmouseover="showGalArrows'+modalName+'(\''+name+'\', \''+parentId+'\')" onmouseout="galArrowTimer'+modalName+'(\''+name+'\', \''+parentId+'\')">'
								+'<div class="galCenter">'
									+picRow
								+'</div>'
								+'<div class="galLeft" id="'+name+'Left">'
									+'<a href="javascript:galSlideLeft'+modalName+'(\''+name+'\', \''+parentId+'\')" onmouseover="imgSwitch(\'pics/system/leftGalOver.png\', \''+name+'LeftImg\')" onmouseout="imgSwitch(\'pics/system/leftGal.png\', \''+name+'LeftImg\')">'
										+'<img src="pics/system/leftGal.png" alt="&lt;-" id="'+name+'LeftImg" />'
									+'</a>'
								+'</div>'
								+'<div class="galRight" id="'+name+'Right">'
									+'<a href="javascript:galSlideRight'+modalName+'(\''+name+'\', \''+parentId+'\')" onmouseover="imgSwitch(\'pics/system/rightGalOver.png\', \''+name+'RightImg\')" onmouseout="imgSwitch(\'pics/system/rightGal.png\', \''+name+'RightImg\')">'
										+'<img src="pics/system/rightGal.png" alt="&lt;-" id="'+name+'RightImg" />'
									+'</a>'
								+'</div>'
							+'</div>'
							+modalCaption
							);
	var frameH = picArr[0][5]+"px";
	var frameW = picArr[0][4]+"px";
	var arrowTop = picArr[0][5]/2-30;
	$('#'+parentId).css({'width': frameW,
						'height': frameH
						});
	
	$('#'+name+'Left').css({'top' : arrowTop});
	$('#'+name+'Right').css({'top' : arrowTop});
	$('#galPic'+name+'0').fadeIn('slow');

	document.getElementById(parentId+'Caption').innerHTML = 
			'<span class="galPicCaption">'
				+galArray[name][0][2]
			+'</span>'
			+'<br />'
			+'<span class="galCopyright">'
				+galArray[name][0][3]
			+'</div>';
	if(modal == "true"){
		resizeModalWindow(picArr[0][4], picArr[0][5]);
		$('#'+parentId).css({'border': '1px solid #ffffff'});
		$('#modalWindowHead').append('<a href="javascript:closeModalWindow()"><img src="pics/system/closemodal.png" alt="Close" /></a>');
		$('#modalWindow').fadeIn('slow');
	}else{
		$('#'+parentId).css({'border': '1px solid #000000'});
		$('#'+parentId+'Caption').animate({width: frameW});
	}
};

function imgSwitch(source, targetId){
	document.getElementById(targetId).src = source;
};

function showGalArrowsModal(name, parentId){
	showGalArrows(name);
	$('#'+parentId+'Caption').fadeIn('fast');
};

function showGalArrows(name, parentId){
	if(galCloseTimer[name]){
		window.clearTimeout(galCloseTimer[name]);
	//	galCloseTimer = null;
	} 
	galCloseTimer[name] = 0;
	if(galCurrPic[name] != 0)
		$('#'+name+'Left').fadeIn('fast');
	if(galCurrPic[name] < (galArrSize[name]-1))
		$('#'+name+'Right').fadeIn('fast');
};

function hideGalArrows(name){
	$('#'+name+'Left').fadeOut('fast');
	$('#'+name+'Right').fadeOut('fast');
};

function hideGalArrowsModal(name, parentId){
	hideGalArrows(name);
	$('#'+parentId+'Caption').fadeOut('fast');
};

function galArrowTimer(name, parentId){
	galCloseTimer[name] = window.setTimeout('hideGalArrows(\''+name+'\')', 500); 
}

function galArrowTimerModal(name, parentId){
	galCloseTimer[name] = window.setTimeout('hideGalArrowsModal(\''+name+'\', \''+parentId+'\')', 500); 
}

function galSlideLeft(name, parentId, picArr){
	gSlide(name, parentId, "false", "left");
}

function galSlideLeftModal(name, parentId, picArr){
	gSlide(name, parentId, "true", "left");
}

function galSlideRight(name, parentId){
	gSlide(name, parentId, "false", "right");
}

function galSlideRightModal(name, parentId){
	gSlide(name, parentId, "true", "right");
}

function gSlideRight(name, parentId, modal){
	gSlide(name, parentId, modal, "right");
}

function gSlide(name, parentId, modal, direction){
	if(direction == "left"){
		var nextPic = galCurrPic[name]-1;
	}else{
		var nextPic = galCurrPic[name]+1;
	}
	var picW = galArray[name][nextPic][4];
	var picH = galArray[name][nextPic][5];

	var arrowTop = picH/2-30;
	if(picW != galArray[name][galCurrPic[name]][4] || picH != galArray[name][galCurrPic[name]][5]){
		$('#'+parentId).animate({
							width: picW,
							height: picH
							});
		if(modal == "true")
			resizeModalWindow(picW, picH);
		$('#'+name+'Left').css({'top' : arrowTop});
		$('#'+name+'Right').css({'top' : arrowTop});
	}
	if(direction == "left"){
		$('#galPic'+name+(nextPic)).animate({
					left:'0',
					opacity:'1'
				}, 'slow');
		$('#galPic'+name+galCurrPic[name]).fadeOut('slow');
	}else{
		$('#galPic'+name+galCurrPic[name]).animate({
					left:'-='+picW,
					opacity:'0'
				}, 'slow');
		$('#galPic'+name+nextPic).fadeIn('fast');
	}
	if(galCurrPic[name] == 0)
		$('#'+name+'Left').fadeIn('fast');
	
	document.getElementById(parentId+'Caption').innerHTML = 
		'<span class="galPicCaption">'
			+galArray[name][nextPic][2]
		+'</span>'
		+'<br />'
		+'<span class="galCopyright">'
			+galArray[name][nextPic][3]
		+'</div>';
	if(nextPic >= galArrSize[name]-1){
		$('#'+name+'Right').hide();
	}
	if(nextPic <= 0){
		$('#'+name+'Left').hide();
	}
	if(direction == "left"){
		galCurrPic[name]--;
	}else{
		galCurrPic[name]++;
	}
	
}
