﻿function SetNavigationManager() {
    _Ntimer = pcc.findname("timerStoryboard");
    _Ntimer.addEventListener("completed", _NonTick);
    if (navigator.userAgent.indexOf("Firefox") != -1) {
        SilverlightControlHost = document.getElementById("SilverlightControlHost");
        gT1 = document.getElementById("gT1");
        gT2 = document.getElementById("gT2");
    }
    gT1.style.visibility = "visible";
    gT2.style.visibility = "visible";
    SilverlightControlHost.onmouseout = oddPageMouseLeave;
    for (var i = 0; i < 8; i++)
         axd.push(new XMLHttpRequest());
}
function _NbeginPageAnimation(type) {
    bhf = false;
    if (type == "showFold" || type == "gizleA") {
        if ((inp < itp && pat == "none" && btm == false) || type == "gizleA") {
            pat = "showFold";
            if (mFold == 1) {
                iaty = (iph / 4) - 5;
                iad = Math.floor(ipw / (iph / 4)) * 10;
                iady = 10;
                iat = 0;
            } else {
                iat = ipw - ifs;
                iaty = ifs;
                iad = iady = 10; //Fold kaldırma y adım miktarı
            }
            _Ntimer.begin();
        }
        var lcA = pcc.findName("SolKenar");
        var lcB = pcc.findName("B31");
        lcA.visibility = lcB.visibility = ((inp > 2) ? "Visible" : "Collapsed");
        pcc.findName("SagKenar").visibility = ((inp < itp - 1) ? "Visible" : "Collapsed");
        pcc.findName("B32").visibility = ((inp < itp) ? "Visible" : "Collapsed");
        var kenar;
        for (var i =1 ; i< itp+2;i++)
        {
            if (pcc.findname("a"+i)!=null)
            {
                if (inp-1 == itp)
                {
                    kenar = pcc.findName("SolKenar")["Canvas.Left"];
                    deger = -30;
                    es = -20;
                }
                else 
                {
                    kenar = pcc.findName("SagKenar")["Canvas.Left"];
                    deger = 7; 
                    es=2;
                }

                if (inp==i)pcc.findname("a"+i)["Canvas.Left"]=kenar + es; 
                else pcc.findname("a"+i)["Canvas.Left"]=kenar + deger;
            } 
        }
        if (!blo && !DigiCheck() && inp >= ifr) {
            CreateXAML("_x2");       
        }
        else {
            for (var i = 1; i < totCount + 1; i++) {
                if (pcc.FindName("_x9" + i) != null)
                    xCc(pcc.FindName("_x9" + i));
            }
            var a = notVarmi(inp);
            getLines();
        }
    } else if (type == "hideFold" || type == "gizleB") {
        pat = type;
        iat = ipw;
        iaty = 0;
        iad = Math.abs(icx1 - iat);
        iady = Math.abs(icx2 - iaty);
        _Ntimer.begin();
        pcc.findName("SolKenar").visibility = (inp == (bna ? 1 : 3) ? "Collapsed" : "Visible");
    } else if (type == "finishTurn") {
        if (inp < itp) {
            if (ifn == 1) {
                iaty = (iph / 4) - 5;
                iad = Math.floor(ipw / (iph / 4)) * 10;
                iady = 10;
                iat = 0;
            } else if (ifn == 2) {
                iaty = 0;
                iad = Math.floor(ipw / (iph / 4)) * 10;
                iat = -ipw;
                iady = 10;
            } else {
                iad = iady = 20;
                iat = -ipw;
                iaty = 0;
            }
            pat = "finishTurn";
            _Ntimer.begin();
        }
    }
    else if (type == "none") {
        pat = "none";
        iad = iat = iady = iaty = 0;
    }
}
function onAnimationComplete (type) {
    if (type == "showFold") {
        pat = "none";
        if (mFold == 1) {
            mFold = 2;
            _NbeginPageAnimation("showFold");
            return;
        }
        mFold = 0;
        if (bBuyutec) {
            magnifier.Reset(inp);
            pcc.FindName("Magnifier").visibility = "Visible";
        }
        if (iop == 2) {
            iop = 4;
            GeneratePages(-5,-3); //yeni
        }
    }
    else if (type == "hideFold") {
        icx1 = icx1b;
        icx2 = icx2b;
        ClearPages(1,3); //yeni
        inp -= 2;
        iop = 2;
        pat = "none";
        if (mFold == 1) {
            icx1 = -ipw;
            icx2 = 0;
            _NbeginPageAnimation("showFold");
        }
    }
    else if (type == "finishTurn") {
        if (ifn == 1) {
            ifn = 2;
            _NbeginPageAnimation("finishTurn");
            return;
        }
        ifn = 0;
        icx1 = ipw;
        icx2 = 0;
		ClearPages(-5,-3); //yeni
        inp += 2;
        iop = 4;
        pat = "none";
        GeneratePages(1,3); //yeni
        _NbeginPageAnimation("showFold");
    }
}
function _NonTick(sender, eventArgs)
{
    if (pat != "none")
    {
        if ((icx1 - iat == 0)&&(icx2 - iaty == 0))
          onAnimationComplete(pat);
        else
        {
            if ((icx1 - iat) != 0)
            {
                if (Math.abs(icx1 - iat) < iad) 
                    icx1 = iat;
                else if (icx1 < iat)
                    icx1 += iad;
                else
                    icx1 -= iad;
            }
            if ((icx2 - iaty) != 0)
            {
                if (Math.abs(icx2 - iaty) < iady) 
                    icx2 = iaty; 
                else if (icx2 < iaty)
                    icx2 += iady;
                else 
                    icx2 -= iady;
            }
            _Ntimer.begin();
        }
        if (inp < itp)
            my_updateScene(inp, icx1,icx2);
    }
}
function oddPageMouseDown(sender, eventArgs)
{
    if (bna || pat != "none")
        return;
    var deg = xpc.RenderTransform.children.GetItem(0);
    icx1b = Math.max(-ipw, (eventArgs.getPosition(xpc).x / deg.ScaleX) - ipw);
    icx2b = Math.max(1, iph - eventArgs.getPosition(xpc).y);
    _zbDM=true;
    sender.releaseMouseCapture();
    sender.captureMouse();
    capturedpage=sender;
    btm = true;
    if (bBuyutec)
        pcc.FindName("Magnifier").visibility="Collapsed";    
    if ("mc"+(inp) != sender.name)
    {
        icx1 = ipw - ifs;
	    icx2 = ifs;        
        if (inp < itp)
            _NbeginPageAnimation("hideFold");
        else
            onAnimationComplete("hideFold");
    }
    else
        pat = "none";
}
function oddPageMouseUp(sender, eventArgs) {
    if (btm) {
        btm = false;
        sender.releaseMouseCapture();
        if (icx1 < 0)
            _NbeginPageAnimation("finishTurn");
        else
            _NbeginPageAnimation("showFold");

        if (eventArgs.getPosition(xpc).x > ifs || eventArgs.getPosition(xpc).y < iph - ifs) {
            capturedpage = null;
            oddPageMouseLeave(0, 0);
        }
    }
    _zbDM = false;
}
function oddPageMouseLeave(sender, eventArgs) {
    if (!btm) {
        if (capturedpage)
            oddPageMouseUp(capturedpage, eventArgs);
        offHC();
    }
}
function oddPageMouseEnter(sender, eventArgs) {
    SetCursor("1");
}
function oddPageMouseMove(sender, eventArgs) {
    if (btm && (pat == "none")) {
        icx1 = Math.max(-ipw, eventArgs.getPosition(xpc).x - ipw);
        icx2 = Math.max(0, iph - eventArgs.getPosition(xpc).y);
        my_updateScene(inp, icx1, icx2);
    }
}

function jumpToPage(newOddPage)
{
    _NbeginPageAnimation("none");
    ClearPages(-5,3);
    inp = newOddPage+2;
    iop=4;
    pat = "none";
    GeneratePages(-5,3);

    _NbeginPageAnimation("showFold");
}

function my_updateScene(oddPageNumber, x_pon,y_pon)
{
    // variables related to odd page
    var oddPoint1 = pcc.findName("page" + (oddPageNumber) + "Point1");
    var oddPoint2 = pcc.findName("page" + (oddPageNumber) + "Point2");
    var oddPoint3 = pcc.findName("page" + (oddPageNumber) + "Point3");
    var oddRotate = pcc.findName("page" + (oddPageNumber) + "Rotate");
    var oddTranslate = pcc.findName("page" + (oddPageNumber) + "Translate");
    var foldShadowRotate = pcc.findName("page" + (oddPageNumber) + "FoldShadowRotate");
    var foldShadowTranslate = pcc.findName("page" + (oddPageNumber) + "FoldShadowTranslate");
    var evenPoint1 = pcc.findName("page" + (oddPageNumber-1) + "Point1");
    var evenPoint2 = pcc.findName("page" + (oddPageNumber-1) + "Point2");
    var evenPoint3 = pcc.findName("page" + (oddPageNumber-1) + "Point3");
    
    var x1=x_pon;
    var _alpha = 90 / ipw * x1;

    if ((y_pon == 0) && (x_pon > -(ipw - 1))) y_pon = 1;
    x1=Math.sqrt((x_pon*x_pon)+(y_pon*y_pon));

    if (x1 >= ipw)
    {
	    x1=0;
	    if (x_pon==0){
		    _alpha=90;
	    }else{
		    if (x_pon<0){
			    _alpha=	-(180/Math.PI)*Math.atan(y_pon/x_pon);
		    }else {
			    _alpha=	180-(180/Math.PI)*Math.atan(y_pon/x_pon);
		    }
	    }
    }else{
    x1 = ((ipw * ipw) - x_pon * x_pon - y_pon * y_pon) / (2 * (ipw - x_pon));
	    if (x1<0) x1=-x1;
	    if (x1==x_pon){
		    _alpha=90;
	    }else{
		    if (x1>x_pon){
			    _alpha=(180/Math.PI)*Math.atan(y_pon/(x1-x_pon));
		    }else{
			    _alpha=180-(180/Math.PI)*Math.atan(y_pon/(x_pon-x1));
		    }
	    }
    }
    evenPoint1.point = x1 + "," + iph;
    var shadowStr = x1 + "," + iph + " ";
    shadowStr += Math.min((x1 + 30), ipw) + "," + iph;

    var _leftEdgeAngle = 90 - _alpha;
    var _bottomLeftCornerX = x1 - Math.cos(_alpha * Math.PI / 180) * (ipw - x1);
    var _bottomLeftCornerY = Math.sin(_alpha * Math.PI / 180) * (ipw - x1);

    oddRotate.angle = _alpha;
    oddTranslate.x = ipw + _bottomLeftCornerX;
    oddTranslate.y = (-1) * _bottomLeftCornerY;

    var _visibleLeftEdgeHeight = (ipw - _bottomLeftCornerX) / Math.cos(_leftEdgeAngle * Math.PI / 180);
    if (_visibleLeftEdgeHeight >= iph)
    {
        var _topLeftCornerY = _bottomLeftCornerY + Math.sin(_leftEdgeAngle * Math.PI / 180) * iph;
        var _visibleTopEdgeWidth;
        var _x2;
        if (_topLeftCornerY > iph)
        {
            _visibleTopEdgeWidth = (_topLeftCornerY - iph) / Math.sin(_alpha * Math.PI / 180);
            _x2 = _bottomLeftCornerX + Math.cos(_leftEdgeAngle * Math.PI / 180) * iph + (_topLeftCornerY - iph) / Math.tan(_alpha * Math.PI / 180);
        }
        else
        {
            _visibleTopEdgeWidth = ipw;
          _x2 = 0;
        }

        oddPoint1.point = "0, 0";
        oddPoint2.point = _visibleTopEdgeWidth + ", 0";

        var _foldAngle = 90 - (180 / Math.PI) * Math.atan(iph / (ipw - x1 - _visibleTopEdgeWidth));
        foldShadowRotate.angle = (-1) * _foldAngle;

        var _foldShadowAdjustment = 40;
        foldShadowTranslate.x = _visibleTopEdgeWidth - 20 * Math.cos(_foldAngle*Math.PI/180) - _foldShadowAdjustment*Math.cos((90 - _foldAngle)*Math.PI/180);
        foldShadowTranslate.y =  20 * Math.sin(_foldAngle*Math.PI/180) - _foldShadowAdjustment*Math.sin((90 - _foldAngle)*Math.PI/180);

        evenPoint2.point = _x2 + ",0";
        evenPoint3.point = _x2 + ",0";

        shadowStr += " " + Math.min((_x2 + 10), ipw) + ",0 " + _x2 + ",0";

    }
    else
    {
        oddPoint1.point = "0, " + (iph - _visibleLeftEdgeHeight);
        oddPoint2.point = "0, " + (iph - _visibleLeftEdgeHeight);

        var _y2 = iph - _bottomLeftCornerY - (ipw - _bottomLeftCornerX) * Math.tan(_leftEdgeAngle * Math.PI / 180);
        evenPoint2.point = ipw + "," + _y2;
        evenPoint3.point = ipw + ",0";

        shadowStr += " " + ipw + "," + _y2 + " " + ipw + "," + _y2;

        var _foldAngle;
        if (x1 != ipw)
            _foldAngle = 90 - (180 / Math.PI) * Math.atan(_visibleLeftEdgeHeight / (ipw - x1));
        else
            _foldAngle = 0;

        foldShadowRotate.angle = (-1) * _foldAngle;
        foldShadowTranslate.x = (-1) * 20 * Math.cos(_foldAngle*Math.PI/180) ;
        foldShadowTranslate.y = (iph - _visibleLeftEdgeHeight) + 20 * Math.sin(_foldAngle * Math.PI / 180);
    }

    oddPoint3.point = (ipw - x1) + "," + iph;
    xse.points = shadowStr;

    if (x1 < 15)
        xse.opacity = 0.25 * (x1 / 15);
    else
        xse.opacity = 0.25;

}

function ClearPages(clearfrom,clearto)
{
    for (var i =(inp+clearfrom) ; i < (inp+clearto); i++) 
    {
        if ((i>=0) && (i<itp) && (pcc.findName("page"+i))) 
        {
            for (var a = 0; a < asc.length; a++)
                if (asc[a].pn == i)
                    asc[a].release();
            _inSave(i);
            if ((i%2)==1) 
                xop.children.remove(pcc.findName("page"+i));
		    else
                xep.children.remove(pcc.findName("page"+i));
            
        }
    }
    xao = null;

    if (_insCol != null) {
        for (var i = 0; i < _insCol.length; i++) {
            var spl = _insCol[i].split('_');
            addLines(spl[0], _insCol[i]);
        }
    }
}
function GeneratePages(genfrom,gento)
{
    for (var a = 0; a < asc.length; a++)
        if (asc[a].pn == inp - 2 || asc[a].pn == inp - 1) {
            asc[a].ba = true;
            if (asc[a].autoplay)
                asc[a].autoplay();
        }
        else
        {
            asc[a].ba = false;
            if (asc[a].stop)
                asc[a].stop();
        }
    var ld1=0;
    for (i =(inp+genfrom) ; i < (inp+gento); i++) 
    {
        if ((i>=0) && (i<itp)) 
        {
            if ((i % 2) == 1) {
                addOddPages(i,i);
	  		    if ((i-inp)<0)
	  		        my_updateScene(i, -ipw, 0);
                else
                    my_updateScene(i, ipw, 0);
	        } else
		        addEvenPages(i,2*itp-i);
          pcc.findName("Page"+i+"Image").source="m/" + i + ".jpg";
          SendPR(pcc.findName("Page" + i + "Canvas"), i, ld1);
          ld1++;
        }
    }
    SendLog(3, inp);
}
//_X2.jpg login.xaml
//_X3.jpg Remember.xaml
//_X4.jpg SendMail.xaml
//_X5.jpg SignUp.xaml
function SendPR(Obj,PN,IN)
{
    axd[IN].open("GET", "m/_$" + PN + ".jpg", true)
    axd[IN].onreadystatechange = function() 
	{
	    if (axd[IN].readyState == 4 && axd[IN].status == 200)
		{
		    var XAMLObj = pcc.CreateFromXAML(axd[IN].responseText);
		    SetPageObject(XAMLObj, Obj, PN);
		}
		_inInit(PN);
    }
    axd[IN].send(null);
}

function SetPageObject (XAMLObj, Obj, PN) {
    if (PN > -1)
        Obj.Children.Add(XAMLObj);
    var active = (PN == inp - 2 || PN == inp - 1 || PN < 0 ? true : false);
    var bYa=false;
    var mTabID = 999;
    if ((PN % 2) == 1 || PN < 0)
        xao = null;
    if (xao == null)
        bYa = true;
    for (a = 0; a < XAMLObj.Children.count; a++) {
        var lbul = false;
        for (var b = 0; b < asc.length; b++) {
            if (asc[b].name == XAMLObj.Children.getitem(a).name) {
                //asc[b].setevents(XAMLObj, XAMLObj.Children.getitem(a), active);
                asc[b].setevents(XAMLObj.Children.getitem(a), active);
                lbul = true;
                if (asc[b].bf) {
                    if (active && bYa && Math.min(mTabID, asc[b].ti) != mTabID) {
                        mTabID = asc[b].ti;
                        xao = asc[b];
                    }
                }
                break;
            }
        }
        if (!lbul) {
            var mDeger;
            switch (XAMLObj.Children.getitem(a).Tag.charAt(0)) {
                case "A":   //Media Element
                    mDeger = new VideoKontrol(XAMLObj.Children.getitem(a), active, PN);
                    break;
                case "B":   //Image
                    mDeger = new ImageKontrol(XAMLObj.Children.getitem(a), PN);
                    break;
                case "C":   //marque
                    mDeger = new BannerKontrol(XAMLObj.Children.getitem(a), PN);
                    break;
                case "D":   //Button
                    mDeger = new ButtonKontrol(XAMLObj.Children.getitem(a), active, PN);
                    if (active && bYa && Math.min(mTabID, mDeger.ti) != mTabID) {
                        mTabID = mDeger.ti;
                        xao = mDeger;
                    }
                    break;
                case "E":   //OptionButton
                case "F":   //CheckBox
                    mDeger = new RadioKontrol(XAMLObj.Children.getitem(a), active, PN);
                    if (active && bYa && Math.min(mTabID, mDeger.ti) != mTabID) {
                        mTabID = mDeger.ti;
                        xao = mDeger;
                    }
                    break;
                case "G":
                    mDeger = new StaticKontrol(XAMLObj.Children.getitem(a), PN);
                    break;
                case "H":
                    mDeger = new TextKontrol(XAMLObj.Children.getitem(a), active, PN);
                    if (active && bYa && Math.min(mTabID, mDeger.ti) != mTabID) {
                        mTabID = mDeger.ti;
                        xao = mDeger;
                    }
                    break;
                case "J":
                    mDeger = new HyperLink(XAMLObj.Children.getitem(a), active, PN);
                    if (active && bYa && Math.min(mTabID, mDeger.ti) != mTabID) {
                        mTabID = mDeger.ti;
                        xao = mDeger;
                    }
                    break;
                
                default:
            }
            if (mDeger) {
                asc.push(mDeger);
                mDeger = null;
            }
        }
    }
    if (xao)
        xao.setfocus();
}