/* return true if MSIE 7.0*/
function IsMSIE7(){
    return ( IsMSIE() && navigator.appVersion.indexOf("MSIE 7.0;") >=0 );
}

//return true if MSIE 6 
function IsMSIE6older(){  
    return ( IsMSIE() && (navigator.appVersion.indexOf("MSIE 6.0;") >= 0 || navigator.appVersion.indexOf("MSIE 5.5;") >= 0 ));
}

//return true if is IE
function IsMSIE(){
    return  navigator.appName === "Microsoft Internet Explorer";
}

/* true pokud se jedna o doubleclick a jde o NS (FF) nebo Operu */
function IsNSOperaDblClick(event) {
    return (event && event.type == 'dblclick' && (NS || OPERA));
}

/* podle operatoru zvysi nebo snizi datum */
function GetCalDate(event, sOperation) { 
    /* pri doubleclick se ve FF a v Opere vyvola 2x onclick a 1x ondblclick a dochazi pak k preskakovani datumu */
    if (IsNSOperaDblClick(event)) return false;
    if (sOperation == "-"){
	 JourneyDateBack();
    }
    else{
	 JourneyDateFore();
    }
    return false;
}

/* podle operatoru zvysi nebo snizi cas o hodinu */
function GetTime(event, sOperation) {
    /* pri doubleclick se ve FF a v Opere vyvola 2x onclick a 1x ondblclick a dochazi pak k preskakovani casu */
    if (IsNSOperaDblClick(event)) return false;
    var sTime = "";
    oEl = document.getElementById("Time");
    if(oEl != null){
	 sTime = TimeParse(oEl.value);
	 sDefTime = ChangeTime(sTime,sOperation);
	 oEl.value = sDefTime;
    }
    return false;
}

// rozparsruje datum, pokud je ok, tak jej vrati jinak vezme datum ulozene v Time, coz je datum posledniho ulozeneho pozadavku
function TimeParse(sTime){
    var iLen = sTime.length;
    var bNum = true;
    var asTime = [];
    asTime = sTime.split(":");
    if (iLen >=3 && iLen <= 5 && asTime.length === 2){
	 // pokud sedi delka a je rozdlene na dve casti
	 for(i = 0; i < asTime.length; i++){
	     for(j = 0; j < asTime[i].length; j++){
		  if (!(asTime[i].charCodeAt(j) >=48 && asTime[i].charCodeAt(j) <= 57 )) {
		      // nejedna se o cislo
		      bNum = false;
		  }
	     }
	 }
    }
    else{
	 bNum = false;
    }
    if(bNum){
	  if (eval (asTime[0]) < 0 || eval(asTime[0]) > 24){
	     bNum = false;
	  }
    }
    if (bNum){
	 // zadany cas je ok
	 return sTime;
    }
    else{
	 // zadany cas neni ok, vrati se posledni OK cas
	 return sDefTime;
    }
}

// nastavi hodnotu casu podle sOperation
// bere zretel zda je nastaven odjezd nebo prijezd
function ChangeTime(sTime,sOperation){
    var iFrom;
    var iTo;
    var asTime = [];
    asTime = sTime.split(":");
    var iHours = eval(asTime[0]);
    oEl1 = document.getElementById("IsDepTime0");
    if (oEl != null && oEl1.checked === true){
	 // je vybran prijezd
	 iFrom = 1;
	 iTo = 24;
	 if ( iHours === 0) {
	     iHours = iTo;
	 }
    }
    else{
	 // iFrom a iTo je nastaveno pro odjezd
	 iFrom = 0;
	 iTo = 23;
	 if ( iHours === 24) {
	     iHours = iFrom;
	 }
    }
    var iNum;
    if (sOperation === "+"){
	 iHours += 1;
    }
    else{
	 if (asTime[1] == "00" || asTime[1] == "0") iHours -= 1;
    }
    if (iHours < iFrom){
	 iHours = iTo;
    }
    if (iHours > iTo){
	 iHours = iFrom;
    }
    asTime[0] = iHours;
    asTime[1] = "00";
    return asTime[0] + ":" + asTime[1];
}
