/*
 * 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');
};

