function on(dom, event, listener) {
    if (dom.addEventListener)
        dom.addEventListener(event, listener, true);
    else
        dom.attachEvent("on" + event, listener);
}

function setVision(left, right, center,images,interval) {
    left = document.getElementById(left);
    right = document.getElementById(right);
    center = document.getElementById(center);
    center.cached={};
    center.imageIndex = 0;
    on(left, "click", earClick.createCallback(center, images, -1));
    on(right, "click", earClick.createCallback(center, images, 1));
    on(left, "mouseover", setClass.createCallback(left, "left leftHover"));
    on(left, "mouseout", setClass.createCallback(left, "left"));
    on(right, "mouseover", setClass.createCallback(right, "right rightHover"));
    on(right, "mouseout", setClass.createCallback(right, "right"));
    if (typeof (interval) != "undefined" && interval) {
        center.interval=interval * 1000;
        center.intervalId = window.setInterval(autoNext.createCallback(center, images), interval*1000);
    }
}
function setClass(dom, className) {
    dom.className = className;
}
function setVisionImg(center,images){
	if(typeof(center.cached[center.imageIndex])=="undefined"){
		var img=document.createElement("img");
		img.src=images[center.imageIndex];
		center.cached[center.imageIndex]=img;
	}
    center.src = images[center.imageIndex];
}
function autoNext(center, images) {
    center.imageIndex++;
    if(center.imageIndex>=images.length)center.imageIndex=0;
    setVisionImg(center,images);
}

function earClick(center, images, offset) {
    var imax = images.length;
    center.imageIndex += (offset);
    if (center.imageIndex >= imax) center.imageIndex = 0;
    else if (center.imageIndex < 0) center.imageIndex = imax - 1;
    setVisionImg(center,images);
    if (typeof (center.interval) != "undefined") {
        window.clearInterval(center.intervalId);
        center.intervalId = window.setInterval(autoNext.createCallback(center, images), center.interval);
    }
}



Function.prototype.createCallback = function() {
    var A = arguments;
    var B = this;
    return function() { return B.apply(window, A); };
}
window.$ = function(w) { return document.getElementById(w); }
function setTab(index) {
var tab;
    for (var tI = 1; tI <= 3; tI++) {
        tab = $("tab" + tI);
        tab.className = (tI === index) ? "selected" : "";
        tab=$("tabC"+tI);
        tab.style.display="none";
    }
	$("tabC"+index).style.display="block";
}
function initQB() {
    for (var tI = 1; tI <= 3; tI++)
        on($("tab" + tI), "click", setTab.createCallback(tI));
   
}

var scrollTimeout=null;
function scrollDelta(panel,delta){
	scrollTimeout=null;
	if(typeof(panel.delta)=="undefined" || panel.delta==null)panel.delta=0;
	panel.delta=panel.delta+delta;
	if(panel.delta+delta>0){
		panel.delta=0;
		panel.style.top="0px";
		return;
	}
	if(panel.delta+delta<-(panel.clientHeight||panel.scrollHeight)+252){
		panel.delta=-panel.clientHeight+252;
		if(panel.delta>0)panel.delta=0;
		panel.style.top=panel.delta.toString()+"px";
		return;
	}

	panel.style.top=panel.delta.toString()+"px";
	scrollTimeout=window.setTimeout(scrollDelta.createCallback(panel,delta),20);
}
function stopScroll(){
	if(scrollTimeout!==null)window.clearTimeout(scrollTimeout);
	scrollTimeout=null;
}
function initPromos(){
	var promoContentInner,up,down;
	for(var pI=0;pI<2;pI++){
		promoContentInner=document.getElementById("promoContentInner"+pI.toString());
		if(typeof(promoContentInner)=="undefined" || promoContentInner==null)return;
		up=document.getElementById("promoUp"+pI.toString());
		down=document.getElementById("promoDown"+pI.toString());
		on(up,"mouseover",scrollDelta.createCallback(promoContentInner,8));
		on(down,"mouseover",scrollDelta.createCallback(promoContentInner,-8));
		on(up,"mouseout",stopScroll);
		on(down,"mouseout",stopScroll);
	}
}

var mediaPrevious,mediaNext,currentMediaIndex=0,mediaTable,mediaCurrentImg,mediaCurrentScript;
var mediaPrevious2,mediaNext2,mediaTable2;
function initGallery(){
    mediaPrevious= document.getElementById("mediaPrevious");
    mediaNext= document.getElementById("mediaNext");
    mediaTable=document.getElementById("mediaTable");
    on(mediaPrevious, "click", mediaGotoScroll.createCallback(-1));
    on(mediaNext, "click", mediaGotoScroll.createCallback(1));
    on(mediaPrevious, "mouseover", setClass.createCallback(mediaPrevious, "hover"));
    on(mediaPrevious, "mouseout", setClass.createCallback(mediaPrevious, ""));
    on(mediaNext, "mouseover", setClass.createCallback(mediaNext, "hover"));
    on(mediaNext, "mouseout", setClass.createCallback(mediaNext, ""));
    
    
    mediaPrevious2= document.getElementById("mediaPrevious2");
    mediaNext2= document.getElementById("mediaNext2");
    mediaTable2=document.getElementById("mediaTable2");
    on(mediaPrevious2, "click", mediaGotoScroll2.createCallback(-1));
    on(mediaNext2, "click", mediaGotoScroll2.createCallback(1));
    on(mediaPrevious2, "mouseover", setClass.createCallback(mediaPrevious2, "hover"));
    on(mediaPrevious2, "mouseout", setClass.createCallback(mediaPrevious2, ""));
    on(mediaNext2, "mouseover", setClass.createCallback(mediaNext2, "hover"));
    on(mediaNext2, "mouseout", setClass.createCallback(mediaNext2, ""));

    var mediaLeft=document.getElementById("mediaLeft");
    var mediaRight=document.getElementById("mediaRight");
    mediaCurrentImg=document.getElementById("mediaCurrentImg");
    mediaCurrentScript=document.getElementById("mediaCurrentScript");
    on(mediaLeft, "click", function(){mediaView(currentMediaIndex-1);});
    on(mediaRight, "click", function(){mediaView(currentMediaIndex+1);});


}

var currentMediaOffset=0,targetMediaOffset=0;
var currentMediaOffset2=0,targetMediaOffset2=0;
function updateMediaOffset(){
	var direction=currentMediaOffset<targetMediaOffset?40:-40;
	var moreNeeded;
	if(Math.abs(direction)>=Math.abs(targetMediaOffset-currentMediaOffset))
	{
		direction=targetMediaOffset-currentMediaOffset;
		moreNeeded=false;
	}
	else moreNeeded=true;
	currentMediaOffset+=direction;
	mediaTable.style.left=currentMediaOffset+"px";
	if(moreNeeded)window.setTimeout(updateMediaOffset,80);
}
function updateMediaOffset2(){
	var direction=currentMediaOffset2<targetMediaOffset2?40:-40;
	var moreNeeded;
	if(Math.abs(direction)>=Math.abs(targetMediaOffset2-currentMediaOffset2))
	{
		direction=targetMediaOffset2-currentMediaOffset2;
		moreNeeded=false;
	}
	else moreNeeded=true;
	currentMediaOffset2+=direction;
	mediaTable2.style.left=currentMediaOffset2+"px";
	if(moreNeeded)window.setTimeout(updateMediaOffset2,80);
}
function mediaGotoScroll(offset){
	targetMediaOffset-=offset*160;
	if(targetMediaOffset>0)targetMediaOffset=0;
	if(targetMediaOffset<640-mediaTable.firstChild.clientWidth)targetMediaOffset=640-mediaTable.firstChild.clientWidth;
	updateMediaOffset();
}
function mediaGotoScroll2(offset){
	targetMediaOffset2-=offset*160;
	if(targetMediaOffset2>0)targetMediaOffset2=0;
	if(targetMediaOffset2<640-mediaTable2.firstChild.clientWidth)targetMediaOffset2=640-mediaTable2.firstChild.clientWidth;
	updateMediaOffset2();
}
function mediaView(index){
	if(index<0)index=0;
	currentMediaIndex=index;
	if(index>=mediaImages.length)index=mediaImages.length-1;
	var image=mediaImages[currentMediaIndex];
	if(image.charAt(0)=="i"){
		mediaCurrentImg.src=image.substr(1);
		mediaCurrentScript.style.display="none";
		mediaCurrentScript.innerHTML="";
		mediaCurrentImg.style.display="";
	}else{
		mediaCurrentImg.style.display="none";
		mediaCurrentScript.innerHTML="";
		mediaCurrentScript.style.display="block";
		var newScript=document.createElement('script');
		newScript.type = 'text/javascript'; 
		newScript.textContent =image.substr(1);
		mediaCurrentScript.appendChild(newScript);		
	}
}