var findBrowser = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "Unknown Browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "Unknown Version";
                this.OS = this.searchString(this.dataOS) || "Unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};


function getScrolledPixels(x_or_y)
{
    if(x_or_y == "x")
    {
      if(window.pageXOffset === (false || undefined))
       {return document.body.scrollLeft;}
      else
       {return window.pageXOffset;}
    }
    else
    {
     if(window.pageYOffset === (false || undefined))
      {return document.body.scrollTop;}
     else
      {return window.pageYOffset;}
    }
}

function findPos(obj) {

	// $("debug").innerHTML += "findPos" + obj;

 	var curleft = curtop = scrolltop = scrollleft = 0;
 	if (obj == null) return;
	if (obj.offsetParent) {
    	  curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
        scrolltop = getScrolledPixels('y');
        scrollleft= getScrolledPixels('x'); //alert(scrollleft);
        findBrowser.init();
        while (obj = obj.offsetParent) {
        	curleft += obj.offsetLeft;
          curtop += obj.offsetTop;
          if(scrolltop  < obj.scrollTop)  scrolltop += obj.scrollTop;
          if(scrollleft < obj.offsetLeft) scrollleft += obj.offsetLeft;
          //  $("debug").innerHTML += "Y:"+scrolltop + " | X:" +  scrollleft ;
        }
    } // else $("debug").innerHTML = "";

    if(findBrowser.browser == "Safari"){
    	scrolltop = 0; // not needed for safari.
    }
    return [curleft,curtop,scrollleft,scrolltop];
}

function pos( event ) {
	  //var element = document.getElementById("mImage");
    if(!document.getElementsByName('bImage')[0])
    {return false;}
    else
    {if(!document.images['bImage'].complete){return false;}
	 else if( document.getElementsByName('bImage')[0].src.indexOf("#") > 0){return false;}}

    var myPos   = findPos($("mImage"));
	  // alert(myPos);
//    $("debug").innerHTML = myPos;

    var cLeft = myPos[0];
    var cRight = cLeft + $("mImage").width;
    var cTop = myPos[1];
    var cBottom = cTop + $("mImage").height;
    var ex = event.clientX; // -  myPos[2];
    var ey = event.clientY;// + myPos[3];
    //var scaleX = zoomSizeX/244;
    var scaleX = zoomSizeX/260;
    var scaleY = zoomSizeY/244;
    var tx,ty,tx2,ty2;

    /*if( ex < cLeft || ex > cRight || (ey+myPos[3]) < cTop || (ey+myPos[3]) > cBottom ) {
    	$("over").style.display = "none";
      $("big").style.display = "none";

      $("layer").style.zIndex  = "0";
      $("layer").style.display = "none";

      $("big").style.zIndex = "0";

      $("detailLeftContent").style.zIndex="5";
      $("detailLeftContent").style.display="";

      return;
    }*/
    tx = Math.floor(300/scaleX);
    tx2 = Math.floor(tx/2);
    ty = Math.floor(300/scaleY);
    ty2 = Math.floor(ty/2);
    $("over").style.display = "";
	  //$("detailLeftContent").style.display="hidden";
    $("detailLeftContent").style.zIndex="0";
    $("over").style.width = tx+"px";
    $("over").style.height= ty+"px";
    $("big").style.width  = "360px";
    $("big").style.height = "360px";
    $("big").style.display = "";
    $("big").style.zIndex = "5";
    $("big").scrollLeft = scaleX*(event.clientX-tx2-cLeft);
    $("big").scrollTop  = scaleY*((event.clientY+myPos[3])-ty2-cTop);
    $("layer").style.zIndex = "4";
    $("layer").style.display = "";

    $("layer").style.height = $('detail_product_info').offsetHeight;
    $("over").style.left = ex - tx2 - (2*myPos[0]) + myPos[2]  + "px"; //(myPos[2]-myPos[0])    + "px";//  + myPos[2]+ "px";
    $("over").style.top  = ey - ty2 - myPos[1] + myPos[3]+"px";
    // $("desc").innerHTML = "["+myPos + "] event(x,y)= ("+event.clientX+","+event.clientY+")  tile(w,h)= "+tx+", "+ty;
    // $("desc").innerHTML += "<br>over(left,top) =" + $("over").style.left +", "+$("over").style.top;
    // $("debug").innerHTML =  (ex - tx2 - myPos[2]) + " " + (ey - ty2 - myPos[1] + myPos[3]) + ">>>";

}

function cleanup()
{
    $("over").style.display = "none";
    $("big").style.display = "none";

    $("layer").style.zIndex  = "0";
    $("layer").style.display = "none";

    $("big").style.zIndex = "0";

    $("detailLeftContent").style.zIndex="5";
    $("detailLeftContent").style.display="";
}

/*
function condHideTAF(e) {
	if( typeof e == 'undefined' )
		e = event;
	var myPos = findPos( $('taf-content') );
	var cLeft = myPos[0];
	var cRight = cLeft + $('taf-content').scrollWidth;
	var cTop = myPos[1];
	var cBottom = cTop + $('taf-content').offsetHeight;
	var ex = e.clientX;// -  myPos[2];
	var ey = e.clientY; // + myPos[3];
	if( ex < cLeft || ex > cRight || (ey+myPos[3]) < cTop || (ey+myPos[3]) > cBottom ) {
			detailController.closeTellAFriend();
	}
}

var taf_onclick_function = window.onmousedown;
var taf_onclick_onload = window.onload;

function taf_add_onclick() {
	if (navigator.userAgent.indexOf("MSIE")>-1) {
		if( typeof taf_onclick_function == 'function' ) {
			document.getElementsByTagName("body")[0].onmousedown = function(e) {
				taf_onclick_function(e);
				condHideTAF(e);
			}
		} else {
			document.getElementsByTagName("body")[0].onmousedown = function(e) {
				condHideTAF(e);
			}
		}
	} else {
		if( typeof taf_onclick_function == 'function' ) {
			window.onmousedown = function(e) {
				taf_onclick_function(e);
				condHideTAF(e);
			}
		} else {
			window.onmousedown = function(e) {
				condHideTAF(e);
			}
		}
	}
	}

	if( typeof taf_onclick_onload == 'function' ) {
		window.onload = function() {
			taf_onclick_onload();
			taf_add_onclick();
		}
	} else {
		window.onload = function() {
			taf_add_onclick();
		}
}
*/

