/*
  general.js

  Copyright (c) 2011 Baby Bidou & others
*/

function SetFocus(TargetFormName) {
  var target = 0;
  if (TargetFormName != "") {
    for (i=0; i<document.forms.length; i++) {
      if (document.forms[i].name == TargetFormName) {
        target = i;
        break;
      }
    }
  }

  var TargetForm = document.forms[target];
    
  for (i=0; i<TargetForm.length; i++) {
    if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
      TargetForm.elements[i].focus();

      if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
        TargetForm.elements[i].select();
      }

      break;
    }
  }
}

function RemoveFormatString(TargetElement, FormatString) {
  if (TargetElement.value == FormatString) {
    TargetElement.value = "";
  }

  TargetElement.select();
}

function CheckDateRange(from, to) {
  if (Date.parse(from.value) <= Date.parse(to.value)) {
    return true;
  } else {
    return false;
  }
}

function IsValidDate(DateToCheck, FormatString) {
  var strDateToCheck;
  var strDateToCheckArray;
  var strFormatArray;
  var strFormatString;
  var strDay;
  var strMonth;
  var strYear;
  var intday;
  var intMonth;
  var intYear;
  var intDateSeparatorIdx = -1;
  var intFormatSeparatorIdx = -1;
  var strSeparatorArray = new Array("-"," ","/",".");
  var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
  var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  strDateToCheck = DateToCheck.toLowerCase();
  strFormatString = FormatString.toLowerCase();
  
  if (strDateToCheck.length != strFormatString.length) {
    return false;
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
      intFormatSeparatorIdx = i;
      break;
    }
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
      intDateSeparatorIdx = i;
      break;
    }
  }

  if (intDateSeparatorIdx != intFormatSeparatorIdx) {
    return false;
  }

  if (intDateSeparatorIdx != -1) {
    strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
    if (strFormatArray.length != 3) {
      return false;
    }

    strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
    if (strDateToCheckArray.length != 3) {
      return false;
    }

    for (i=0; i<strFormatArray.length; i++) {
      if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
        strMonth = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'dd') {
        strDay = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'yyyy') {
        strYear = strDateToCheckArray[i];
      }
    }
  } else {
    if (FormatString.length > 7) {
      if (strFormatString.indexOf('mmm') == -1) {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
      } else {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
      }

      strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
      strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
    } else {
      return false;
    }
  }

  if (strYear.length != 4) {
    return false;
  }

  intday = parseInt(strDay, 10);
  if (isNaN(intday)) {
    return false;
  }
  if (intday < 1) {
    return false;
  }

  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) {
    for (i=0; i<strMonthArray.length; i++) {
      if (strMonth == strMonthArray[i]) {
        intMonth = i+1;
        break;
      }
    }
    if (isNaN(intMonth)) {
      return false;
    }
  }
  if (intMonth > 12 || intMonth < 1) {
    return false;
  }

  intYear = parseInt(strYear, 10);
  if (isNaN(intYear)) {
    return false;
  }
  if (IsLeapYear(intYear) == true) {
    intDaysArray[1] = 29;
  }

  if (intday > intDaysArray[intMonth - 1]) {
    return false;
  }
  
  return true;
}

function IsLeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) {
      return true;
    }
  } else {
    if ((intYear % 4) == 0) {
      return true;
    }
  }

  return false;
}

function calcDuration(filesize,speed) {
	var time;
	var new_time;
	var hours;
	var mins;
	var mins_left;
	var secs_left;
	var secs;
	
	if(speed == '') {
		return '... ?';
	}
	if(filesize>0 && speed!=null) {
		var size = filesize;
		time = (size*1024) / (speed / 8);
			  
		time = Math.round(time);
		hours = time / 3600;
		hours = Math.floor(hours);
		
		if(hours < 10) {
			hours = '0' + hours;
		}
		if(hours >= 1) {
			new_time = hours;
			secs_left = time % 3600;
			if(secs_left > 60) {
				mins  = secs_left / 60;
				mins = Math.floor(mins);
				if(mins < 10) {
					mins = '0' + mins;
				}
				new_time = new_time + ':' + mins;
				secs  = secs_left % 60;
				if(secs < 10) {
					secs = '0' + secs;
				}
				new_time = new_time + ':' + secs;
			} else {
				mins = 0;
				if(mins < 10) {
					mins = '0' + mins;
				}
				new_time = new_time + ':' + mins;
				secs = secs_left;
				if(secs < 10) {
					secs = '0' + secs;
				}
				new_time = new_time + ':' + secs;
			}
		} else {
			mins  = time / 60;
			mins = Math.floor(mins);
			if(mins < 10) {
				mins = '0' + mins;
			}
			if(mins >= 1) {
				new_time = '00:' + mins;
				secs = time % 60;
				if(secs < 10) {
					secs = '0' + secs;
				}
				new_time = new_time + ':' + secs;
			} else {
				secs = time % 60;
				if(secs < 10) {
					secs = '0' + secs;
				}
				if(secs == '00') {
					secs = '01';
				}
				new_time = '00:00:' + secs;
			}
		}
		return new_time;
	}
}
function go(index) {
  var dewp = document.getElementById("dewplayer");
  if(dewp!=null) {
	dewp.dewgo(index);
  }
}
function volume(objet_event) {
  var dewp = document.getElementById("dewplayer");
  var coordX = objet_event.clientX;
  var coordY = objet_event.clientY;
  alert (coordX+','+coordY);
  if(dewp!=null) {
	alert(dewp.dewvolume(val));
  }
}
function volumemax() {
  var dewp = document.getElementById("dewplayer");
  var val=100;
  if(dewp!=null) {
	alert(dewp.dewvolume(val));
  }
}
function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}
function getPostedValues(fobj) {
	var str = "";
	
	if (typeof fobj !== 'undefined') {
		for (var i = 0;i < fobj.elements.length;i++) {
			switch(fobj.elements[i].type) {
			case "text":
			case "textarea":
			case "password":
			case "hidden":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;
			case "checkbox":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].checked) + "&";
				break;
			case "radio":
				if (fobj.elements[i].checked) {
					str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				}
				break;
			case "select-one":
				str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
				break;
			}
		}
	}
	return str;
}
function ajax_login(action) {
	var req = null; 
	var data= '';
	var overlay=document.getElementById('overlay');
	var overlay_box=document.getElementById('overlay_box');
	
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest(); 
	else if (window.ActiveXObject)
		req  = new ActiveXObject(Microsoft.XMLHTTP); 

	req.onreadystatechange = function() { 
		overlay.style.display="";
		overlay_box.innerHTML='<span class="text_center" style="display:block"><img src="/__V3/images/template3/wait.gif"></span>';
		if(req.readyState == 4) {
			switch (req.status) {
			case 200:
				if (req.responseText.substring(0,3) == '-->') {
					window.location.replace(req.responseText.substring(3));
				} else {
					overlay_box.innerHTML=req.responseText;
				}
				break;
			default:
				overlay_box.innerHTML='<div class="close_box" onClick="ajax_login(\'close\')">x</div><div class="box text_center">Error: returned status code ' + req.status + ' ' + req.statusText + '</div>';
				break;
			}
		}
	};

	switch (action) {
	case "process":
		data = getPostedValues(document.login_form)+"action=process";
		break;
	case "new":
		data = "action=new";
		break;
	case "old":
		data = "action=old";
		break;
	case "forgotten":
		data = "action=forgotten";
		break;
	case "close":
		overlay.style.display="none";
		overlay_box.innerHTML="";
		return;
		break;
	}
	req.open("POST", "/__V3/ajax/login.php", true); 
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	req.send(data);
}
function ajax_logout(action) {
	var req = null; 
	var data= '';
	var overlay=document.getElementById('overlay');
	var overlay_box=document.getElementById('overlay_box');

	if(window.XMLHttpRequest)
		req = new XMLHttpRequest(); 
	else if (window.ActiveXObject)
		req  = new ActiveXObject(Microsoft.XMLHTTP); 

	req.onreadystatechange = function() { 
		overlay.style.display="";
		overlay_box.innerHTML='<span class="text_center" style="display:block"><img src="/__V3/images/template3/wait.gif"></span>';
		if(req.readyState == 4) {
			switch (req.status) {
			case 200:
				if (req.responseText.substring(0,3) == '-->') {
					window.location.replace(req.responseText.substring(3));
				} else {
					overlay_box.innerHTML=req.responseText;
				}
				break;
			default:
				overlay_box.innerHTML='<div class="close_box" onClick="ajax_login(\'close\')">x</div><div class="box text_center">Error: returned status code ' + req.status + ' ' + req.statusText + '</div>';
				break;
			}
		}
	};

	switch (action) {
	case "process":
		break;
	case "close":
		data = "action=close";
		break;
	}
	req.open("POST", "/__V3/ajax/logout.php", true); 
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	req.send(data);
}
function ajax_comment(action,id) {
	var req = null; 
	var data= '';
	var overlay=document.getElementById('overlay');
	var overlay_box=document.getElementById('overlay_box');
	
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest(); 
	else if (window.ActiveXObject)
		req  = new ActiveXObject(Microsoft.XMLHTTP); 

	req.onreadystatechange = function() { 
		overlay.style.display="";
		overlay_box.innerHTML='<span class="text_center" style="display:block"><img src="/__V3/images/template3/wait.gif"></span>';
		if(req.readyState == 4) {
			switch (req.status) {
			case 200:
				if (req.responseText.substring(0,3) == '-->') {
					window.location.replace(req.responseText.substring(3));
				} else {
					overlay_box.innerHTML=req.responseText;
					scroll(0,0);
				}
				break;
			default:
				overlay_box.innerHTML='<div class="close_box" onClick="ajax_comment(\'close\')">x</div><div class="box text_center">Error: returned status code ' + req.status + ' ' + req.statusText + '</div>';
				break;
			}
		}
	};

	switch (action) {
	case "new":
		data = getPostedValues(document.comment_form)+"action=new&products_id="+id;
		break;
	case "process":
		data = getPostedValues(document.comment_form)+"action=process";
		break;
	case "close":
		overlay.style.display="none";
		overlay_box.innerHTML="";
		return;
		break;
	}
	req.open("POST", "/__V3/ajax/comment.php", true); 
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	req.send(data);
}
function showdetails(part_id,max_section) {
	for (var i=1;i <= max_section;i++) {
		document.getElementById('t'+String(i)).className="";
		document.getElementById('b'+String(i)).style.display="none";
	}
	document.getElementById('t'+part_id).className="sel";
	document.getElementById('b'+part_id).style.display="";
}
function showtopmenu() {
	var topmenu=document.getElementById('topmenu');
	if (topmenu.className=='menu') {
		topmenu.className='menu rollover';
	} else {
		topmenu.className='menu'
	}
}
myprintf = function() { 
  var num = arguments.length; 
  var oStr = arguments[0];   
  for (var i = 1; i < num; i++) { 
    var pattern = "\\{" + (i-1) + "\\}"; 
    var re = new RegExp(pattern, "g"); 
    oStr = oStr.replace(re, arguments[i]); 
  } 
  return oStr; 
}


