
/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2003-10-13
Description: get the Argument.name=value-pairs of a querystring of the Url 

Argument: sep  Separator-token of the name=value-pairs (default-value: &)
Returns: an object where the properties are the name of the name=value pairs 
Example: args = getArgs(); alert('Your name is ' + args.name)         
Ideas: Load one or more  ressources (pics, iframes etc.) variable according to querystring parameters  
Further proposals: get also values with multiple properties (e.g. to get values of a multis selected Select-Element)
lastmod: 2003-10-13
*********************/

/*********************
Autor: Herbert Maier (herbert.maier@conova.com)
Datum: 2003-10-13
Beschreibung: Diese Funktion gibt  die Name=Wert-Paare eines "Query-Strings" einer Url in Form eines Objekts zurueck

Argument: sep  Trennzeichen zwischen den einzelnen Namen=Wert-Paaren
Rueckgabewert: ein Objekt, dessen Eigenschaften die Namen=Wert-Paare repraesentiert
Beispiel: args = getArgs(); alert('Your name is ' + args.name)         
Ideen: Variables Laden einer oder mehrerer Ressourcen (Bilder,, Iframes etc.) ensprechend der angegeben Query-string-Parameter
Weiter Vorschlaege: es sollte auch mehrere Werte einem Namen zugeordnet werden koennen 
zuletzt geaendert: 2003-10-13
*********************/



function getArgs(sep){
  var args = new Object();
  var query = location.search.substring(1);
  if(!sep) sep = '&';
  var pairs = query.split(sep);
  for(var i = 0; i <pairs.length; i++) {
    var pos = pairs[i].indexOf('=');
    if (pos == -1){
      args[pairs[i]]='';
      continue;
    }
    var argname = pairs[i].substring(0,pos);
    var value = pairs[i].substring(pos+1);
    args[argname] = unescape(value);}
  return args;
}


/*********************
Autor: Herbert Maier (herbert.maier@conova.com)
Datum: 2003-10-13
Beschreibung: Diese Funktion gibt  die Name=Wert-Paare eines "Query-Strings" einer Url in Form eines Objekts zurueck

Argument: sep  Trennzeichen zwischen den einzelnen Namen=Wert-Paaren
	  query eine Zeichenkette, die in der Form Name=wertTrennzeichenName=wERT  USW: 
	
Rueckgabewert: ein Objekt, dessen Eigenschaften die Namen=Wert-Paare repraesentiert; zusaetzlich wird ein Array erzeugt, welcher die wertepaare enthaelt
Beispiel: args = getArgs(); alert('Your name is ' + args.name); in args[0] liegt name=hugo         
zuletzt geaendert: 2004-11-23
*********************/



function getArgs1(query,sep){
  var args = new Object();
  if(!sep) sep = '&';
  var pairs = query.split(sep);
  for(var i = 0; i <pairs.length; i++) {
    var pos = pairs[i].indexOf('=');
    if (pos == -1){
      args[pairs[i]]='';
      continue;
    }
    args[i]=pairs[i];	
    var argname = pairs[i].substring(0,pos);
    var value = pairs[i].substring(pos+1);
    args[argname] = unescape(value);}
  return args;
}





/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2003-10-14
Function : getNameOfWeekday(lang,format) (suppl. method of DATE)
Description: get name of the current Weekday

Argument: lang 
Argument: format (long | short) 
Returns: an object where the properties are the name of the name=value pairs 
Example:
Ideas: 
Further proposals: add additional languages
lastmod: 2003-10-14
*********************/



Date.prototype.getNameOfWeekday=function(format, lang){

  var names_long_german = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
  var names_short_german = ['Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam'];
  var names_long_english = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  var names_short_english = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];


  this.lang = lang;
  this.format = format;
  if(!lang){lang='ger'}
  if(!format){format='long'}

  var today = new Date();
  if(lang == 'ger'){
    if(format == 'long'){
      return names_long_german[today.getDay()];  
    }else if(format == 'short'){
      return names_short_german[today.getDay()];    
    }
  }else if(lang == 'eng'){
    if(format == 'long'){
      return names_long_english[today.getDay()];  
    }else if(format == 'short'){
      return names_short_english[today.getDay()];    
    }
  }
}






Date.prototype.getNameOfMonth=function(format, lang){

  var names_long_german = ['J&auml;nner', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
  var names_short_german = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];
  var names_long_english = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  var names_short_english = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

  	
  this.lang = lang;
  this.format = format;
  if(!lang){lang='ger'}
  if(!format){format='long'}

  var today = new Date();
  if(lang == 'ger'){
    if(format == 'long'){
      return names_long_german[today.getMonth()];  
    }else if(format == 'short'){
      return names_short_german[today.getMonth()];    
    }
  }else if(lang == 'eng'){
    if(format == 'long'){
      return names_long_english[today.getMonth()];  
    }else if(format == 'short'){
      return names_short_english[today.getMonth()];    
    }
  }
}






/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2003-10-27
Function : getPos(elem) 
Description: get the absolute position of an element 

Argument: any object of window.document
Returns: an object with properties x, y, width and height
Example:
Ideas: 
Further proposals: add additional properties width/height
lastmod: 2003-10-14
*********************/


function getPos(elem){

  var pos = new Object()

  pos.x =  elem.offsetLeft;  
  pos.y =  elem.offsetTop;  

  if(elem.offsetParent){
    var tmp = getPos(elem.offsetParent);
    pos.x += tmp.x;
    pos.y += tmp.y;   
			
  }
	
  pos.width = elem.offsetWidth;
  pos.height = elem.offsetHeight;

return pos;

}


/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2003-11-03
Function : handleError() 
Description: get rid of javascript error messages; call it at the begin of the script with 	window.onerror = handleError; statement 
Argument: 
Returns: true 
Example:
Ideas: 
Further proposals: 
lastmod: 2003-11-03
*********************/


function handleError(){
  return true;
}






/***
You want to know if the current date lies within a period within a year



****/

function liegt_im_jahreszeitraum(from_month,from_day,to_month,to_day){

  var today = new Date();

  if(from_month.toString().length==1){from_month = '0'+from_month;}
  if(from_day.toString().length==1){from_day = '0'+from_day;}

  if(to_month.toString().length==1){to_month = '0'+to_month;}
  if(to_day.toString().length==1){to_day = '0'+to_day;}


  from = parseInt(from_month +''+from_day,10);
  to =   parseInt(to_month +''+to_day,10);

  var day  =  today.getDate();
  if(day.toString().length==1){day = '0'+day;}

  var zeitpunkt = ( parseInt(today.getMonth())+1 ).toString() + day ;


  if(from <= to){
    if(zeitpunkt >= from  &&  zeitpunkt <= to){
      return true;
    }else{
      return false;
    }
  }else{
    if(zeitpunkt > to  &&  zeitpunkt < from){
      return false;
    }else{
      return true;
    }
  }
}











/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2004-08-24
Function : toUpperCaseFirst() (suppl. method of String)
Description: returns a copy of string with uppercase letter at first position of string

Argument: - 
Returns: copy of string with uppercase letter at first position of string
Example:
Ideas: 
Further proposals: add additional languages
lastmod: 2004-08-24
*********************/



String.prototype.toUpperCaseFirst=function(){
 var tempChar = this.substring(0,1); 	 
 var tempStrTail  = this.substring(1); 	 
 var tempStr = tempChar.toUpperCase();
 tempStr += tempStrTail;
	
 return	tempStr;

}



function setCornerpic (){
	if(document.getElementById('endbild')){
		bild = document.getElementById('endbild');
		eckbild1 = document.getElementById('eckbild');
		eckbild1.style.top = bild.height-10;	
	}
}




/*********************
Author: Herbert Maier (herbert.maier@conova.com)
Date: 2006-01-19
Function : setDate2Selectfields(offsetDays,id_year_field,id_month_field,id_day_field) 
Description: sets the +/-days-from-now date in given selectfields

Argument: 
	- offsetDays: how many days (+/-) from now are the fields set 
	- id_year_field: id of the day selectfield 
	- id_year_field: id of the day selectfield 
	- id_year_field: id of the day selectfield
	
Returns: nothing
Example: http://www.daihatsu.at/copen_534.html
Further proposals:
lastmod: 2006-01-19
*********************/

function setDate2Selectfields(offsetDays,id_year_field,id_month_field,id_day_field){
	if(!document.getElementById(id_year_field)){
		return;	
	}else{
		objFieldYear = document.getElementById(id_year_field);
	}

	if(!document.getElementById(id_month_field)){
		return;	
	}else{
		objFieldMonth = document.getElementById(id_month_field);
	}

	if(!document.getElementById(id_day_field)){
		return;	
	}else{
		objFieldDay = document.getElementById(id_day_field);
	}	

	//Default argument offsetDays to 0, if it is NaN
	if(!parseInt(offsetDays)){offsetDays=0;}


	var today = new Date();
	var ms_today = today.getTime();
	var date_to_set = new Date(ms_today + offsetDays*24*60*60*1000);
	
	////iterate through select-fields and set selected attribute
	//year
	for(var i=0;i<objFieldYear.length;i++){
		if(objFieldYear.options[i].value == date_to_set.getFullYear()){
			objFieldYear.options[i].selected=true;
			break;
		}
	}

	for(var i=0;i<objFieldMonth.length;i++){
		if(objFieldMonth.options[i].value == date_to_set.getMonth()+1){
			objFieldMonth.options[i].selected=true;
			break;
		}
	}

	for(var i=0;i<objFieldDay.length;i++){
		if(objFieldDay.options[i].value == date_to_set.getDate()){
			objFieldDay.options[i].selected=true;
			break;
		}
	}


}







