this.bidForFix = {}; 

if (typeof(bidForFix.server_domain) === "undefined") {
    bidForFix.server_domain = "http://www.bidforfix.com"; 
}

//var cssLink = document.createElement('link');
//cssLink.rel='stylesheet';
//cssLink.type='text/css';
//cssLink.href=bidForFix.server_domain + '/static/bidforfixclient.css';
//document.getElementsByTagName('head')[0].appendChild(cssLink)

bidForFix.hideDiv = function() { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
        document.getElementById('HS').style.visibility = 'hidden'; 
    } 
    else { 
        if (document.layers) { // Netscape 4 
          document.hideshow.visibility = 'hidden'; 
        } 
        else { // IE 4 
          document.all.hideshow.style.visibility = 'hidden'; 
        } 
    }
    var bidFrame = document.getElementById('bidforfix_iframe');
    bidFrame.parentNode.removeChild(bidFrame);
    bidForFix.createBidFrame();
    }

bidForFix.showDiv = function(issueId, issueTitle, issueDescription, ticketUrl) {
/* 
    if (document.getElementById) { // DOM3 = IE5, NS6 
       document.getElementById('HS').style.visibility = 'visible'; 
    } 
    else { 
        if (document.layers) { // Netscape 4 
          document.hideshow.visibility = 'visible'; 
        } 
        else { // IE 4 
          document.all.hideshow.style.visibility = 'visible'; 
        } 
    }
 */

    var bidFrame=document.getElementById('bidforfix_iframe');
    var bidForm = bidFrame.contentWindow.document.body.firstChild;

 	link = bidForFix.server_domain + '/p/' + bidForFix.projectKey + "/" + issueId + "/";
 	    
    bidForm.elements[0].value = issueTitle;
    bidForm.elements[1].value = issueDescription;
    bidForm.elements[2].value = ticketUrl;
    bidForm.action = link; 
    bidForm.submit();

 	window.open(link,'_parent');    
} 

bidForFix.showDivAuthor = function(issueId, issueTitle, issueDescription, ticketUrl) { 
    if (document.getElementById) { // DOM3 = IE5, NS6 
       document.getElementById('HS').style.visibility = 'visible'; 
    } 
    else { 
        if (document.layers) { // Netscape 4 
          document.hideshow.visibility = 'visible'; 
        } 
        else { // IE 4 
          document.all.hideshow.style.visibility = 'visible'; 
        } 
    } 
    var bidFrame=document.getElementById('bidforfix_iframe');
    var bidForm = bidFrame.contentWindow.document.body.firstChild;
    
    bidForm.elements[0].value = issueTitle;
    bidForm.elements[1].value = issueDescription;
    bidForm.elements[2].value = ticketUrl;
    bidForm.action = bidForFix.server_domain + '/p/' + bidForFix.projectKey + "/" + issueId + "/author/";
    bidForm.submit();
    
} 

bidForFix.createBidFrame = function() {
    var bidFrame = document.createElement("iframe");
    var popup = document.getElementById('PBC');
    popup.appendChild(bidFrame);
    bidFrame.id = "bidforfix_iframe";
    bidFrame.src = "";
    bidFrame.domain = bidForFix.server_domain;
    doc = null;
    if(bidFrame.contentDocument)
      // Firefox, Opera
      doc = bidFrame.contentDocument;
    else if(bidFrame.contentWindow)
      // Internet Explorer
      doc = bidFrame.contentWindow.document;
    else if(bidFrame.document)
      // Others?
      doc = bidFrame.document;
    doc.open();
    doc.close();
    
    var bidForm = doc.createElement("form");
    bidForm.id='bidforfix_form';
    bidForm.action = '';
    bidForm.method='post';
    
    var titleInput = doc.createElement("input");
    titleInput.id="title";
    titleInput.name="title";
    titleInput.type="hidden";
    
    var descInput = doc.createElement("input");
    descInput.id="description";
    descInput.name="description";
    descInput.type="hidden";
    
    var urlInput = doc.createElement("input");
    urlInput.id="ticket_url";
    urlInput.name="ticket_url";
    urlInput.type="hidden";
    
    var submitButton = doc.createElement("input");
    submitButton.visibility = 'hidden';
    submitButton.value="bid";
    submitButton.type="hidden";

    bidForm.appendChild(titleInput);
    bidForm.appendChild(descInput);
    bidForm.appendChild(urlInput);
    bidForm.appendChild(submitButton);
    doc.body.appendChild(bidForm);
}

bidForFix.createAll = function() {
    var hideshowDiv = document.createElement("div");
    hideshowDiv.id="HS";
//    hideshowDiv.setAttribute('style',"visibility:hidden;");
    
    document.body.appendChild(hideshowDiv);
    hideshowDiv.style.visibility="hidden";
    
    var fadeDiv = document.createElement("div");
    fadeDiv.id="FD";
//    hideshowDiv.appendChild(fadeDiv);
    
    var popupBlockDiv = document.createElement("div");
    popupBlockDiv.id="PB";
    popupBlockDiv.setAttribute("class","PB");
    
    var popupDivT = document.createElement("div");
    popupDivT.setAttribute("class","PBT");
    
    var popupDivC = document.createElement("div");
    popupDivC.setAttribute("class","PBC");
    popupDivC.id="PBC";
    
    
    var closeBtn = document.createElement("a");
    closeBtn.onclick=bidForFix.hideDiv;
    closeBtn.setAttribute("class","CB");
    
    var popupDivB = document.createElement("div");
    popupDivB.setAttribute("class","PBB");
    
    hideshowDiv.appendChild(fadeDiv);
    hideshowDiv.appendChild(popupBlockDiv);
    popupBlockDiv.appendChild(popupDivT);
    popupBlockDiv.appendChild(popupDivC);
    popupDivC.appendChild(closeBtn);
    popupBlockDiv.appendChild(popupDivB);

    bidForFix.createBidFrame();
}

bidForFix.startPage = function(){
	
	var bugArray = new Array();
	bidForFix.bidLinks = new Array();
	var x;
    var y;
    var response;
 
    for (x=0; x<document.links.length; x++) {
        if (document.links[x].id && document.links[x].id.search('bff_')==0){
        	bidForFix.bidLinks.push(document.links[x]);
        	bugArray.push(document.links[x].id.replace("bff_",""));
        }
    }
    var l = bidForFix.bidLinks.length;
    for (x =0; x < l; x++) {
    	var clone  = bidForFix.bidLinks[x].cloneNode(true);
    	clone.id = "author_" + clone.id;
    	clone.href = clone.href.replace('showDiv', 'showDivAuthor');
    	bidForFix.bidLinks[x].parentNode.appendChild(clone);
    	bidForFix.bidLinks.push(clone);
    }
    	
    var body = 't='+bugArray;
    var ajaxScript = document.createElement("script");
    ajaxScript.src=bidForFix.server_domain + "/p/" + bidForFix.projectKey + "/btn?"+ body;
//    alert(ajaxScript.src);
    ajaxScript.type="text/javascript";
    document.body.appendChild(ajaxScript);
    if (document.getElementById("bff_widget_area") != null ){
    	var widgetScript = document.createElement("script");
	    widgetScript.src=bidForFix.server_domain + '/p/' + bidForFix.projectKey + "/widget";
	    widgetScript.type="text/javascript";
	    document.body.appendChild(widgetScript); 
    }
    bidForFix.createAll();
}

bidForFix.handleResponse = function(responseText) {
    for (x in bidForFix.bidLinks) {
	//alert(bidForFix.bidLinks[x].id.replace("bff_",""));
        if (bidForFix.bidLinks[x].id) {
		//alert(bidForFix.bidLinks[x]);
        	if (responseText[bidForFix.bidLinks[x].id.replace("bff_","")] !== undefined || 
        			responseText[bidForFix.bidLinks[x].id.replace("author_bff_","")] !== undefined) {
	        	if (bidForFix.bidLinks[x].id.search('bff_') == 0) {
	        		bidForFix.bidLinks[x].setAttribute('className',responseText[bidForFix.bidLinks[x].id.replace("bff_","")].split(',')[0]);
	        		bidForFix.bidLinks[x].setAttribute('class',responseText[bidForFix.bidLinks[x].id.replace("bff_","")].split(',')[0]);
		//alert(bidForFix.bidLinks[x].className);
	        		
	        		if(responseText[bidForFix.bidLinks[x].id.replace("bff_","")].split(',')[0]=="bff_button_registered"){
	    	    		document.getElementById('bff_area_top').style.visibility = 'visible';
    					document.getElementById('bff_area').style.visibility = 'visible';
	    				document.getElementById('bff_area_bottom').style.visibility = 'visible';
					}
	        		else {
		        		if(responseText[bidForFix.bidLinks[x].id.replace("bff_","")].split(',')[1]=="bff_button_activate"){
		    	    		document.getElementById('bff_area_top').style.visibility = 'visible';
	    					document.getElementById('bff_area').style.visibility = 'visible';
		    				document.getElementById('bff_area_bottom').style.visibility = 'visible';
					}
	        			
	        		}
	        	}
	        	else {
	        		bidForFix.bidLinks[x].setAttribute("className",responseText[bidForFix.bidLinks[x].id.replace("author_bff_","")].split(',')[1]);
	        		bidForFix.bidLinks[x].setAttribute("class",responseText[bidForFix.bidLinks[x].id.replace("author_bff_","")].split(',')[1]);
	        	}
	        	
        	} 
        }
    }
}


if (window.addEventListener) 
    window.addEventListener('load',bidForFix.startPage,false); 
else 
    window.attachEvent('onload',bidForFix.startPage); 

bidForFix.widget = function(text) {
    var widgetDiv = document.getElementById('bff_widget_area');
    widgetDiv.innerHTML = text;
}

