﻿// JScript File
var pageTitle;
var app;

    function showSwatch()
    {
        var sw = document.getElementById("swatch");
        if(sw.src == "http://www.tripleoptics.net/vid/grey_calibration_top.jpg")
            sw.src = "http://www.tripleoptics.net/vid/grey_calibration.jpg";
        else
            sw.src = "http://www.tripleoptics.net/vid/grey_calibration_top.jpg";
    }
	function showPic()
	{
		window.scrollTo(0,150)
	}
	
   function bookmark(appName,pType,pTitle)
   {
        app = appName;
        pageTitle = pTitle
        switch(pType)
            {
            case "pic":
               BitlyClient.shorten(document.location, 'BitlyCB.myShortenCallback_pic');
            break;
            case "cat":
               BitlyClient.shorten(document.location, 'BitlyCB.myShortenCallback_cat');
            break; 
            case "page":
               BitlyClient.shorten(document.location, 'BitlyCB.myShortenCallback_page');
            break;                               
        }
    }
    BitlyCB.myShortenCallback_pic = function(data) {
		var result;
		for (var r in data.results) {
			result = data.results[r];
			result['longUrl'] = r;
			break;
		}
		
		switch(app)
            {
            case "twitter":
                window.open("http://twitter.com/home/?status="+ escape("I found this picture called "+ pageTitle +" that I want to share with you ") + result['shortUrl']);
            break;
            case "delicious":
               window.open("http://del.icio.us/post?url="+result['shortUrl']+"&amp;title="+escape("tripleoptics.net Picture titled: "+ pageTitle +" "));
            break; 
            case "digg":
               window.open("http://digg.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("tripleoptics.net Picture titled:  "+ pageTitle +" "));
            break;        
            case "reddit":
               window.open("http://reddit.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("tripleoptics.net Picture titled: "+ pageTitle +" "));
            break;     
            case "facebook":
               window.open("http://www.facebook.com/sharer.php?u="+result['shortUrl']);
            break;  
            case "stumbleupon":
               window.open("http://www.stumbleupon.com/submit?url="+ document.location.href +"&amp;title="+escape("I found this picture called "+ pageTitle +" that I want to share with you "));
            break;                                                           
        }
	}
	
    BitlyCB.myShortenCallback_cat = function(data) {
		var result;
		for (var r in data.results) {
			result = data.results[r];
			result['longUrl'] = r;
			break;
		}
		switch(app)
            {
            case "twitter":
                window.open("http://twitter.com/home/?status="+ escape("I found these picture called "+ pageTitle +" that I want to share with you ") + result['shortUrl']);
            break;
            case "delicious":
               window.open("http://del.icio.us/post?url="+result['shortUrl']+"&amp;title="+escape("tripleoptics photography by dn  "+ pageTitle +" pictures"));
            break; 
            case "digg":
               window.open("http://digg.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("tripleoptics photography by dn  "+ pageTitle +" pictures"));
            break;        
            case "reddit":
               window.open("http://reddit.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("tripleoptics photography by dn  "+ pageTitle +" pictures"));
            break;     
            case "facebook":
               window.open("http://www.facebook.com/sharer.php?u="+result['shortUrl']);
            break;  
            case "stumbleupon":
               window.open("http://www.stumbleupon.com/submit?url="+ document.location.href +"&amp;title="+escape("tripleoptics photography by dn "+ pageTitle +" pictures "));
            break;                                                           
        }
	}
    BitlyCB.myShortenCallback_page = function(data) {
		var result;
		for (var r in data.results) {
			result = data.results[r];
			result['longUrl'] = r;
			break;
		}
        	switch(app)
            {
            case "twitter":
                window.open("http://twitter.com/home/?status="+ escape("I found this link ["+ result['shortUrl'] +"] that I want to share with you"));
            break;
            case "delicious":
               window.open("http://del.icio.us/post?url="+result['shortUrl']+"&amp;title="+escape("link : photography tripleoptics.net"));
            break; 
            case "digg":
               window.open("http://digg.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("link : photography tripleoptics.net"));
            break;        
            case "reddit":
               window.open("http://reddit.com/submit?url="+ result['shortUrl'] +"&amp;title="+escape("link : photography tripleoptics.net"));
            break;     
            case "facebook":
               window.open("http://www.facebook.com/sharer.php?u="+result['shortUrl']);
            break;  
            case "stumbleupon":
               window.open("http://www.stumbleupon.com/submit?url="+ document.location.href +"&amp;title="+escape("link : photography tripleoptics.net"));
            break;                                                           
        }
     }


    var domIdText
    function edit(dbattribute, domId, id)
    {
        domIdText = document.getElementById(domId).innerHTML;
        //alert(domIdText);
        var editPane = document.createElement("div")
        editPane.setAttribute("style", "z-index:200;position:relative");
        editPane.setAttribute("id","edit_pane_"+domId);
        if (dbattribute == "attribute_lens") {
            var lensArray = new Array('Sigma 10-20mm', 'Sigma 105mm macro', 'Canon 17-55mm f2.8', 'Canon 16-35mm f2.8L', 'Canon 17-40mm f4L', 'Canon 24-105mm f4L')
            var editSelection = document.createElement("select");
            editSelection.setAttribute("id", "edit__" + domId);
            for(i=0;i<lensArray.length;i++)
            {
                var lensOpt = document.createElement("option");
                lensOpt.setAttribute("value",lensArray[i])
                lensOpt.innerHTML = lensArray[i];
                editSelection.appendChild(lensOpt);
            }
        }
        else {
            var editSelection = document.createElement("textarea");
            editSelection.setAttribute("id", "edit__" + domId);
            editSelection.value = domIdText;
        }
        var editPaneButton = document.createElement("input"); 
        editPaneButton.setAttribute("type","button"); 
        editPaneButton.setAttribute("value","edit");    
        editPaneButton.setAttribute("onclick","submitEdit('"+ dbattribute +"','edit__"+domId+"',"+id+",'edit_pane_"+domId+"','"+domId+"')");                
        
        var editPaneCloseButton = document.createElement("input"); 
        editPaneCloseButton.setAttribute("type","button"); 
        editPaneCloseButton.setAttribute("value","close");    
        editPaneCloseButton.setAttribute("onclick","closeEdit('edit_pane_"+domId+"','"+domId+"')");                
              

        editPane.appendChild(editSelection);
        editPane.appendChild(editPaneButton);
        editPane.appendChild(editPaneCloseButton)
        //alert(editPane.innerHTML)
        document.getElementById(domId).appendChild(editPane)
    }
    
    function submitEdit(dbattribute, newval, id, editPane ,mainContainer)
    {
    // alert(document.getElementById(newval).value+" != "+domIdText)
    if(document.getElementById(newval).value != domIdText) {
        // alert("updateAttribute("+dbattribute+", "+document.getElementById(newval).value+", "+id+")")
        updateAttribute(dbattribute, document.getElementById(newval).value, id)
    }
    closeEdit(editPane, mainContainer)
    }    
    
    function closeEdit(editPane, mainContainer)
    {
        document.getElementById(mainContainer).removeChild(document.getElementById(editPane));
    }


     var xmlhttp

     function updateAttribute(attribute, value, id) {
         var returnText = "f";
         xmlhttp = GetXmlHttpObject();
         if (xmlhttp == null) {
            document.getElementById("EDITtxt_"+attribute).innerHTML = "[f]";
         }
         var url = "/ajax/updateAttribute.php";
         url = url + "?a=" + attribute + "&v=" + value+"&i="+id;
         xmlhttp.onreadystatechange = function() {
             if (xmlhttp.readyState == 4) {
                document.getElementById("EDITtxt_"+attribute).innerHTML = "[u]";
             }
         }
         xmlhttp.open("GET", url, true);
         xmlhttp.send(null);
     }
          

     function update(imageId, func) {
         var returnText = "";
         xmlhttp = GetXmlHttpObject();
         if (xmlhttp == null) {
             alert("Your browser does not support XMLHTTP!");
             return;
         }
         var url = "/ajax/update.php";
         url = url + "?id=" + imageId + "&f=" + func;
         xmlhttp.onreadystatechange = function() {
             if (xmlhttp.readyState == 4) {
                 document.getElementById("updateResponse").innerHTML = xmlhttp.responseText
             }
         }
         xmlhttp.open("GET", url, true);
         xmlhttp.send(null);
     }

    function getImages(type, tagtype, cat, img)
    {
         var returnText = "";
         xmlhttp = GetXmlHttpObject();
         if (xmlhttp == null) {
             alert("Your browser does not support XMLHTTP!");
             return;
         }
         var url = "/ajax/getNextImage.php";
         url = url + "?type=" + type + "&tagtype=" + tagtype + "&id=" + img + "&cat=" + cat;
         xmlhttp.onreadystatechange = function() {
             if (xmlhttp.readyState == 4) {
                 var btnHolder = document.getElementById("nextPrevImageLinks")
				 var imgArray = xmlhttp.responseText.split("|")
				 // alert(imgArray[0].length)
				 if(imgArray[1].length <= 1)
				 {
				 	// do nothing - start of category
				 }
				 else
				 {	// previous image
				    // alert("previous")
				 	var image1Array = 	imgArray[1].split(":")
					var image1Id = 		image1Array[0]
					var image1cat = 	image1Array[1]					
					var image1Url = 	image1Array[2]
					var image1Title = 	image1Array[3]	
					btnHolder.appendChild(buildButton('prev',type,cat,image1Id,image1cat,image1Url,image1Title));			
					//alert("previous Image : "+image1Array[2])
            	}
				 if(imgArray[2].length <= 1)
				 {
				 	// do nothing - end of category
				 }	
				 else { 	// next image
				    // alert("next")
				 	var image2Array = 	imgArray[2].split(":")
					var image2Id = 		image2Array[0]
					var image2cat = 	image2Array[1]					
					var image2Url = 	image2Array[2]
					var image2Title = 	image2Array[3]
					btnHolder.appendChild(buildButton('next',type,cat,image2Id,image2cat,image2Url,image2Title));							
					//alert("next Image : "+image2Array[2])					
				 }			 
				 	///alert(imgArray[0])
					//alert(imgArray[1])				 
				 	//document.getElementById("updateResponse").innerHTML = 
             }
         }
         xmlhttp.open("GET", url, true);
         xmlhttp.send(null);
    }

     function stateChanged() {
         if (xmlhttp.readyState == 4) {
             document.getElementById("updateResponse").innerHTML = xmlhttp.responseText;
         }
     }

     function GetXmlHttpObject() {
         if (window.XMLHttpRequest) {
             // code for IE7+, Firefox, Chrome, Opera, Safari
             return new XMLHttpRequest();
         }
         if (window.ActiveXObject) {
             // code for IE6, IE5
             return new ActiveXObject("Microsoft.XMLHTTP");
         }
         return null;
     }

     function showThumbnail(type) {
         document.getElementById("img" + type).style.display = "block";
     }
	 function hideThumbnail(type) {
	     document.getElementById("img" + type).style.display = "none";
	 }
	 
	 function buildButton(type,linktype,tagcat,id,cat,url,title)
	 {
	     var btn = document.createElement("div")
	     btn.className = "prevNextLink";
	     var tDiv = document.createElement("div")
	     tDiv.setAttribute("id", "img" + type);
	     //tDiv.setAttribute("style", "display:none");
	     tDiv.className = "imgHolder";
	     var tImg = document.createElement("img")


	     var btnLink = document.createElement("a")
	     var imgLink = document.createElement("a")
	     var finalCat = "";
	     if(linktype == "cat")
		    finalCat = id+"_"+ lowerise(addDashes(title)) +".aspx";
		 else if (linktype == "albumtags")
		    finalCat =  id + "_" + lowerise(addDashes(title)) + ".aspx";        
         else
             finalCat =  id + "_" + lowerise(addDashes(title)) + ".aspx";

         btnLink.setAttribute('href', finalCat);
         btnLink.setAttribute('title', "view the photo called " + title);
         imgLink.setAttribute('href', finalCat);
         imgLink.setAttribute('title', "view the photo called " + title);         
         tImg.setAttribute("src", url);
         tImg.setAttribute("style", "width:70px;border:0px");
         tImg.setAttribute("alt", title);
         imgLink.appendChild(tImg);
         tDiv.appendChild(imgLink);
         
		// btnLink.setAttribute('onmouseover', "showThumbnail('"+type+"')");
		// btnLink.setAttribute('onmouseout', "hideThumbnail('"+type+"')");

		if (type == "prev") { type = "previous" };
		btnLink.innerHTML = type;
		btn.appendChild(btnLink)
		btn.appendChild(tDiv);
		return btn;
	 }
	// http://www.tripleoptics.net/objects-abstracts/machinery/images/788_watchmen.aspx
	// http://www.tripleoptics.net/objects-abstracts/786_glowing-budda.aspx
	function formatCat(str)
	{
		if(str.indexOf("ObjectsAbstracts") != -1)
		{
			return str.replace(/ObjectsAbstracts/gi,"objects-abstracts");
		}
		else
		{
			return str;
		}
	}
	function addDashes(str){
		return str.replace(/ /gi,"-")
	}
	function lowerise(str){
		return str.toLowerCase()
	}	

