/**
*	asa-utils.js
*
*	Copyright (c) 2010 a-commerce ag. All Rights Reserved.
*
*	date created: 04/2010/cz
*/

var bt_id;
var bt_img;
var is_animate=true; /* Stops quick clicks */

// Mousepos
var posX = 0;
var posY = 0;

function getMouseXY(e) {
	if (!e) e = window.event;
	if (document.getElementById) {
		posX = e.clientX;
		posY = e.clientY;	
	}
}

document.onmousedown = getMouseXY;
// end Mousepos

function winOpen(link,win_wid,win_hei) {   
	var pos_x = (screen.width / 2) - (win_wid / 2);
	var pos_y = (screen.height / 2) - (win_hei / 2);
	window.open(link,'winprint','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,scrollbars=yes,width='+win_wid+',height='+win_hei+',screenX='+pos_x+',screenY='+pos_y+',left='+pos_x+',top='+pos_y);
}

function loadCategoryInfo(e,v,catIndex) {
	bt_id=e;
	bt_img=v;
	
	if (is_animate) {
		var url = 'category-texte.cfm';
		var params = 'catIndex='+catIndex+getACK();
		var ajax = new Ajax.Updater(
		{success: 'boxtext-content'},
		url,
		{method: 'get', parameters: params, onComplete: changeButton, onFailure: loadInfoError});
	}
}

function loadInfo(e,v,catIndex) {
	bt_id=e;
	bt_img=v;
	
	if (is_animate) {
		var url = 'info-texte.cfm';
		var params = 'catIndex='+catIndex+getACK();
		var ajax = new Ajax.Updater(
		{success: 'boxtext-content'},
		url,
		{method: 'get', parameters: params, onComplete: changeButton, onFailure: loadInfoError});
	}
}

function loadInfoError(request) {
	alert("Error: loadInfo response");
}

function showTestVehicle(lang) {
	if (document.getElementById('testVehicle').style.display == "none") {		
		document.getElementById('testVehicle').style.display = "block";
		document.getElementById('bt_prerequisites').src = "images/Voraussetzungen_weiss_"+lang+".png";
		document.getElementById('bt_testvehicle').src = "images/Pruefungsfahrzeug_grau_"+lang+".png";
	}
	else {
		document.getElementById('testVehicle').style.display = "none";
		document.getElementById('bt_prerequisites').src = "images/Voraussetzungen_grau_"+lang+".png";
		document.getElementById('bt_testvehicle').src = "images/Pruefungsfahrzeug_weiss_"+lang+".png";
	}
}

function changeButton() {

	/* Reset all Buttons */
	for (i=0;i<=29;i++) {
		if (document.getElementById('bt'+i)) {
			el = document.getElementById('bt'+i).src;
			el = el.replace('grau', 'weiss');	
			document.getElementById('bt'+i).src=el;
		}
	}
	
	/* Highlight selected button */
	if (bt_img.indexOf('weiss',0) > 0) {
		bt_img = bt_img.replace('weiss', 'grau');
	}
	else {
		bt_img = bt_img.replace('grau', 'weiss');
	}
	
	/* Load Infotext */
	document.getElementById(bt_id).src=bt_img;
	
	/* Animate */
	is_animate=false;
	Effect.BlindRight('boxtext');
}

Effect.BlindLeft = function(element) {
  element = $(element);
  element.makeClipping();
  return new Effect.Scale(element, 0,
    Object.extend({ scaleContent: false,
      scaleY: false,
      scaleMode: 'box',
      scaleContent: false,
      restoreAfterFinish: true,
      afterSetup: function(effect) {
        effect.element.makeClipping().setStyle({
          height: effect.dims[0] + 'px'
        }).show();
      },
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping();
      }
    }, arguments[1] || { })
  );
};

Effect.BlindRight = function(element) {
  element = $(element);
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleY: false,
    scaleFrom: 0,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makeClipping().setStyle({width: '0px'}).show();
    },  
    afterFinishInternal: function(effect) {
      effect.element.undoClipping();
	  is_animate=true;
    }
  }, arguments[1] || { }));
};


function showInfo(catIndex, pos) {
	if (typeof pos == 'undefined') {
		tmpPos = posX+40;
	}
	else {
		if (pos == "r") {
			tmpPos = posX+40;
		}
		else {
			tmpPos = posX-440;
		}
	}
	document.getElementById('infoCategory').style.left = tmpPos+'px';
	document.getElementById('infoCategory').style.top = dishead+'px';
	loadInfoCat(catIndex);
	document.getElementById('infoCategory').style.visibility = "visible";	
}

function loadInfoCat(catIndex) {	
	var url = 'category-texte2.cfm';
	var params = 'catIndex='+catIndex+getACK();
	var ajax = new Ajax.Updater(
	{success: 'infoCategory'},
	url,
	{method: 'get', parameters: params, onFailure: loadInfoError});
}
function loadInfoError(request) {
	alert("Error: loadInfo response");
}

function closeInfo() {
	document.getElementById('infoCategory').style.visibility = 'hidden';
	document.getElementById('infoCategory').innerHTML = '<img src="images/loading.gif" />';
}

function loadTextMedical(catIndex) {	
	var url = 'respasa.cfm';
	var params = 'event=getTextMedical&catIndex='+catIndex+getACK();
	var ajax = new Ajax.Updater(
	{success: 'boxtext-content'},
	url,
	{method: 'get', parameters: params, onFailure: loadTextMedicalError});
}
function loadTextMedicalError(request) {
	alert("Error: loadTextMedical response");
}

function reloadTextCategory(catIndex) {	
	var url = 'category-texte.cfm';
	var params = 'catIndex='+catIndex+getACK();
	var ajax = new Ajax.Updater(
	{success: 'boxtext-content'},
	url,
	{method: 'get', parameters: params, onFailure: reloadTextCategoryError});
}
function reloadTextCategoryError(request) {
	alert("Error: reloadTextCategory response");
}

function printCategory(catName) {
	//var url = 'category-print.cfm?catIndex='+catIndex+getACK();
	var url = catName;
	winOpen(url,800,600);
}

function rotateSession() {
	var url = 'respasa.cfm';
	var params = 'event=rotate'+getACK();
	var ajax = new Ajax.Request(
		url, 
		{method: 'get', parameters: params, onSuccess:requestRotateSession, evalScripts: false});
}
var requestRotateSession = function(t) {
	ret = trim(t.responseText);
	setRotate();
}
var setRotate = function(t) {
	setTimeout(function(){rotateSession();}, 3000000);
}
