var AjaxCSSJS = Class.create({
	initialize: function(url, type, onLoadFunction) {
		try {
			this.url			= url;
			this.type			= type.toLowerCase(); 
			this.onLoadFunction = onLoadFunction;
			
			if (this.type == 'css') {
				this.removeAnExistingFile('link[href="' + this.url + '"]');
							
				var fileref = document.createElement("link");
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", this.url);			
			} else if (this.type == 'js') {
				this.removeAnExistingFile('script[src="' + this.url + '"]');
			
				var fileref = document.createElement('script');
				fileref.setAttribute("type","text/javascript");
				fileref.setAttribute("src", this.url);				
				fileref.onload = this.onLoadFunction;
				fileref.onreadystatechange = this.onReadyChange.bind(this, fileref);											
			}
			
			if (typeof fileref != "undefined")
				document.getElementsByTagName("head")[0].appendChild(fileref);
				
		} catch (e) {
			alert("error:" + e.name + " - " + e.message);
		}
	},
	
	onReadyChange: function(fr) {	
		if (fr.readyState == 'complete' || fr.readyState == 'loaded')
			this.onLoadFunction();
	},
	
	removeAnExistingFile: function(xpath) {
		var tag = $$(xpath)[0];
		if (tag) {
			document.getElementsByTagName("head")[0].removeChild(tag);
		}
	},
	
	remove: function() {
		if (this.type == 'css') {
			this.removeAnExistingFile('link[href="' + this.url + '"]');
		} else if (this.type == 'js') {
			this.removeAnExistingFile('script[src="' + this.url + '"]');
		}
	}
});

function contentDisplay(displayID, template, hits) {
  new AjaxCSSJS('/css/contentDisplay/template'+template+'.css', 'css');

/* hämtat genom updater */

/*  $$('.productsContentDivStyle'+displayID).each(function(element) {
    new Ajax.Updater(element, 'productTemplateReader.php?PrID='+$(element).identify()+'&displayID='+displayID+'&template='+template, {
      onLoading: function() {
        $(element).setStyle({backgroundColor:'#aaffff'});
      },
      onLoaded: function() {
        $(element).setStyle({backgroundColor:'#ffeeff'});
      }
    });
  });*/

/* hämtat genom request */

  /* header */

  $$('.productsContentHeaderDivStyle'+displayID).each(function(element) {
    new Ajax.Request( '/ajaxTarget/contentDisplay.php', {
      method: 'GET',
      parameters: {
        PCID: $(element).readAttribute('PCID'),
        displayID: displayID,
        template: template,
        type: 'header',
        hits: hits
      },
      onComplete: function(transport) {
        $(element).insert({'after':transport.responseText});
      }
    });

  });

  /* elements */

  $$('.productsContentDivStyle'+displayID).each(function(element) {
//    new Ajax.Request( '/ajaxTarget/contentDisplay.php?PrID='+$(element).identify()+'&displayID='+displayID+'&template='+template+'&type=content', {
    new Ajax.Request( '/ajaxTarget/contentDisplay.php', {
      method: 'GET',
      parameters: {
        PrID: $(element).readAttribute('PrID'),
        PCID: $(element).readAttribute('PCID'),
        displayID: displayID,
        template: template,
        type: 'content'
      }, 
      onComplete: function(transport) {
//alert(transport.responseText);
        $(element).insert({'after':transport.responseText});
      }
    });
  });
}

function productLink() {

//  alert('test');
}

function addCart ( PrID ) {
  units = $('amountToBuy'+PrID).getValue();

  new Ajax.Request( '/ajaxTarget/addCart.php', {
    method: 'GET',
    parameters: {
      addCart: '1',
      PrID: PrID,
      units: units
    },
    onComplete: function(transport) {
      var responseText = transport.responseText;
      var responseReplace = transport.responseText.sub('hideAddCartLightbox', '');
      if(responseText == responseReplace) {
        var data = {template: 'addCart.php'};
        webtradeLightbox(Object.toJSON(data));
      }
      element = 'cartContainer';
      $(element).replace(responseReplace);
    }
  });

}


function sendOffer() {
  var param = 'action=sendOffer&'+$('offerRequestForm').serialize();

  new Ajax.Request( '/ajaxTarget/offert.php', {
    method: 'GET',
    parameters: param,
    onComplete: function(transport) {
      $('offertContainer').replace(transport.responseText);
    }
  });
}

function viewSingleOffer(OFID) {
  var param = 'action=viewSingleOffer&OFID='+OFID;
  new Ajax.Updater( 'offertContainer', '/ajaxTarget/offert.php', {
    method: 'GET',
    parameters: param
  });
}

function createCartFromOffercart(OFID, SITE_URL) {
  new Ajax.Request('/ajaxTarget/offert.php', {
    method: 'get',
    parameters: {
      action: 'createCartFromOffercart',
      OFID: OFID
    },
    onComplete: function(transport) {
      if(transport.responseText.strip() == '') {
        window.location='http://'+SITE_URL+'/kundvagn/';
      } else {
        alert(transport.responseText);
      }
    }
  });
}

function reloadCart() {
  new Ajax.Request( '/ajaxTarget/addCart.php', {
    onComplete: function(transport) {
      element = 'cartContainer';
      $(element).replace(transport.responseText);
    }
  });
}

function unitsCart ( PrID, CartID, OFID ) {
  units = $('units'+PrID).getValue();
  new Ajax.Request( '/ajaxTarget/cart.php', {
    method: 'POST',
    parameters: {
      PrID: PrID,
      units: units,
      CartID: CartID,
      OFID: OFID
    },
    onComplete: function(transport) {
      element = 'cartDiv';
      $(element).replace(transport.responseText);
      reloadCart();
    }
  });
}

function deleteCart ( PrID ) {
  new Ajax.Request( '/ajaxTarget/cart.php', {
    method: 'POST',
    parameters: {
      PrID: PrID,
      deleteCart: '1'
    },
    onComplete: function(transport) {
      element = 'cartDiv';
      $(element).replace(transport.responseText);
      reloadCart();
    }
  });
}

function deleteAll ( ) {
  new Ajax.Request( '/ajaxTarget/cart.php', {
    method: 'POST',
    parameters: {
      emptyCart: '1'
    },
    onComplete: function(transport) {
      element = 'cartDiv';
      $(element).replace(transport.responseText);
      reloadCart();
    }
  });
  reloadCart();
}

