var message1='<IFRAME SRC=\'/includes/newsletter.php\' FRAMEBORDER=0 scrolling=no height=\'70\'>gCodes - Discount Search engine for vouchers and codes</iframe><center><a href=\'#\' onclick=\'closeMessage();return false\'>Close</a></center>';

function newsletter()
{
messageObj.setShadowOffset(5);// Large shadow
messageObj.setHtmlContent(message1);
messageObj.setSize(300,105);
messageObj.setCssClassMessageBox('modalDialog_contentDiv_newsletter');
messageObj.setSource(false);
messageObj.setShadowDivVisible(true);
messageObj.display();
}

function closeMessage()
{
messageObj.close();
}

DHTML_modalMessage = function()
{
var url;
var htmlOfModalMessage;
var divs_transparentDiv;
var divs_content;
var iframe;
var layoutCss;
var width;
var height;

var existingBodyOverFlowStyle;
var dynContentObj;
var cssClassOfMessageBox;
var shadowDivVisible;
var shadowOffset;
var MSIE;

this.url = '';
this.htmlOfModalMessage = '';
this.layoutCss = 'modal-message.css';
this.height = 200;
this.width = 400;
this.cssClassOfMessageBox = false;
this.shadowDivVisible = true;
this.shadowOffset = 5;
this.MSIE = false;
if(navigator.userAgent.indexOf('MSIE')>=0) this.MSIE = true;


}

DHTML_modalMessage.prototype = {
setSource : function(urlOfSource)
{
this.url = urlOfSource;

}
,
setHtmlContent : function(newHtmlContent)
{
this.htmlOfModalMessage = newHtmlContent;

}
,
setSize : function(width,height)
{
if(width)this.width = width;
if(height)this.height = height;
}
,
setCssClassMessageBox : function(newCssClass)
{
this.cssClassOfMessageBox = newCssClass;
if(this.divs_content){
if(this.cssClassOfMessageBox)
this.divs_content.className=this.cssClassOfMessageBox;
else
this.divs_content.className='modalDialog_contentDiv';
}

}
,
setShadowOffset : function(newShadowOffset)
{
this.shadowOffset = newShadowOffset

}
,
display : function()
{
if(!this.divs_transparentDiv){
this.__createDivs();
}
this.divs_transparentDiv.style.display='block';
this.divs_content.style.display='block';
this.divs_shadow.style.display='block';
if(this.MSIE)this.iframe.style.display='block';
this.__resizeDivs();

window.refToThisModalBoxObj = this;
setTimeout('window.refToThisModalBoxObj.__resizeDivs()',150);

this.__insertContent();
}

,
setShadowDivVisible : function(visible)
{
this.shadowDivVisible = visible;
}
,
close : function()
{
document.documentElement.style.overflow = '';
this.divs_transparentDiv.style.display='none';
this.divs_content.style.display='none';
this.divs_shadow.style.display='none';
if(this.MSIE)this.iframe.style.display='none';

}
,
__createDivs : function()
{
this.divs_transparentDiv = document.createElement('DIV');
this.divs_transparentDiv.className='modalDialog_transparentDivs';
this.divs_transparentDiv.style.left = '0px';
this.divs_transparentDiv.style.top = '0px';

document.body.appendChild(this.divs_transparentDiv);
this.divs_content = document.createElement('DIV');
this.divs_content.className = 'modalDialog_contentDiv';
this.divs_content.id = 'DHTMLSuite_modalBox_contentDiv';
this.divs_content.style.zIndex = 100000;

if(this.MSIE){
this.iframe = document.createElement('<IFRAME src="about:blank" frameborder=0>');
this.iframe.style.zIndex = 90000;
this.iframe.style.position = 'absolute';
document.body.appendChild(this.iframe);
}

document.body.appendChild(this.divs_content);
this.divs_shadow = document.createElement('DIV');
this.divs_shadow.className = 'modalDialog_contentDiv_shadow';
this.divs_shadow.style.zIndex = 95000;
document.body.appendChild(this.divs_shadow);

}
,
    __resizeDivs : function()
    {
    
    var topOffset = Math.max(document.body.scrollTop,document.documentElement.scrollTop);

if(this.cssClassOfMessageBox)
this.divs_content.className=this.cssClassOfMessageBox;
else
this.divs_content.className='modalDialog_contentDiv';
    
    if(!this.divs_transparentDiv)return;
    var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    var sl = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
    document.documentElement.style.overflow = 'hidden';
    window.scrollTo(sl,st);
    setTimeout('window.scrollTo(' + sl + ',' + st + ');',10);
    var bodyWidth = document.documentElement.clientWidth;
    var bodyHeight = document.documentElement.clientHeight;
    
var bodyWidth, bodyHeight; 
if (self.innerHeight){
 
   bodyWidth = self.innerWidth; 
   bodyHeight = self.innerHeight; 
}  else if (document.documentElement && document.documentElement.clientHeight) {
   bodyWidth = document.documentElement.clientWidth; 
   bodyHeight = document.documentElement.clientHeight; 
} else if (document.body) { 
   bodyWidth = document.body.clientWidth; 
   bodyHeight = document.body.clientHeight; 
} 
      this.divs_content.style.width = this.width + 'px';
    this.divs_content.style.height= this.height + 'px';  
    var tmpWidth = this.divs_content.offsetWidth;
    var tmpHeight = this.divs_content.offsetHeight;
    this.divs_transparentDiv.style.width = Math.ceil((bodyWidth - tmpWidth) / 2) + 'px';
    this.divs_transparentDiv.style.height = bodyHeight + 'px';
    this.divs_transparentDiv.style.height = '4000px';   
    this.divs_transparentDiv.style.width = '4000px';   
    this.divs_content.style.left = Math.ceil((bodyWidth - tmpWidth) / 2) + 'px';;
    this.divs_content.style.top = (Math.ceil((bodyHeight - tmpHeight) / 2) +  topOffset) + 'px';
 if(this.MSIE){
 this.iframe.style.left = this.divs_content.style.left;
 this.iframe.style.top = this.divs_content.style.top;
 this.iframe.style.width = this.divs_content.style.width;
 this.iframe.style.height = this.divs_content.style.height;
 }
 
    this.divs_shadow.style.left = (this.divs_content.style.left.replace('px','')/1 + this.shadowOffset) + 'px';
    this.divs_shadow.style.top = (this.divs_content.style.top.replace('px','')/1 + this.shadowOffset) + 'px';
    this.divs_shadow.style.height = tmpHeight + 'px';
    this.divs_shadow.style.width = tmpWidth + 'px';
    if(!this.shadowDivVisible)this.divs_shadow.style.display='none';// Hiding shadow if it has been disabled
    
    
    }
,
    __insertContent : function()
    {
if(this.url){
ajax_loadContent('DHTMLSuite_modalBox_contentDiv',this.url);
}else{
this.divs_content.innerHTML = this.htmlOfModalMessage;
}
    }
}
/* Simple AJAX Code-Kit (SACK) v1.6.1 */
/* ©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence,
   see documentation or authors website for more details */
function sack(file) {
this.xmlhttp = null;

this.resetData = function() {
this.method = "POST";
  this.queryStringSeparator = "?";
this.argumentSeparator = "&";
this.URLString = "";
this.encodeURIString = true;
  this.execute = false;
  this.element = null;
this.elementObj = null;
this.requestFile = file;
this.vars = new Object();
this.responseStatus = new Array(2);
  };

this.resetFunctions = function() {
  this.onLoading = function() { };
  this.onLoaded = function() { };
  this.onInteractive = function() { };
  this.onCompletion = function() { };
  this.onError = function() { };
this.onFail = function() { };
};

this.reset = function() {
this.resetFunctions();
this.resetData();
};

this.createAJAX = function() {
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
this.xmlhttp = null;
}
}

if (! this.xmlhttp) {
if (typeof XMLHttpRequest != "undefined") {
this.xmlhttp = new XMLHttpRequest();
} else {
this.failed = true;
}
}
};

this.setVar = function(name, value){
this.vars[name] = Array(value, false);
};

this.encVar = function(name, value, returnvars) {
if (true == returnvars) {
return Array(encodeURIComponent(name), encodeURIComponent(value));
} else {
this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
}
}

this.processURLString = function(string, encode) {
encoded = encodeURIComponent(this.argumentSeparator);
regexp = new RegExp(this.argumentSeparator + "|" + encoded);
varArray = string.split(regexp);
for (i = 0; i < varArray.length; i++){
urlVars = varArray[i].split("=");
if (true == encode){
this.encVar(urlVars[0], urlVars[1]);
} else {
this.setVar(urlVars[0], urlVars[1]);
}
}
}

this.createURLString = function(urlstring) {
if (this.encodeURIString && this.URLString.length) {
this.processURLString(this.URLString, true);
}

if (urlstring) {
if (this.URLString.length) {
this.URLString += this.argumentSeparator + urlstring;
} else {
this.URLString = urlstring;
}
}

// prevents caching of URLString
this.setVar("rndval", new Date().getTime());

urlstringtemp = new Array();
for (key in this.vars) {
if (false == this.vars[key][1] && true == this.encodeURIString) {
encoded = this.encVar(key, this.vars[key][0], true);
delete this.vars[key];
this.vars[encoded[0]] = Array(encoded[1], true);
key = encoded[0];
}

urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
}
if (urlstring){
this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
} else {
this.URLString += urlstringtemp.join(this.argumentSeparator);
}
}

this.runResponse = function() {
eval(this.response);
}

this.runAJAX = function(urlstring) {
if (this.failed) {
this.onFail();
} else {
this.createURLString(urlstring);
if (this.element) {
this.elementObj = document.getElementById(this.element);
}
if (this.xmlhttp) {
var self = this;
if (this.method == "GET") {
totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
this.xmlhttp.open(this.method, totalurlstring, true);
} else {
this.xmlhttp.open(this.method, this.requestFile, true);
try {
this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
} catch (e) { }
}

this.xmlhttp.onreadystatechange = function() {
switch (self.xmlhttp.readyState) {
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;

case 3:
self.onInteractive();
break;
case 4:
self.response = self.xmlhttp.responseText;
self.responseXML = self.xmlhttp.responseXML;
self.responseStatus[0] = self.xmlhttp.status;
self.responseStatus[1] = self.xmlhttp.statusText;

if (self.execute) {
self.runResponse();
}

if (self.elementObj) {
elemNodeName = self.elementObj.nodeName;
elemNodeName.toLowerCase();
if (elemNodeName == "input"
|| elemNodeName == "select"
|| elemNodeName == "option"
|| elemNodeName == "textarea") {
self.elementObj.value = self.response;
} else {
self.elementObj.innerHTML = self.response;
}
}
if (self.responseStatus[0] == "200") {
self.onCompletion();
} else {
self.onError();
}

self.URLString = "";
break;
}
};

this.xmlhttp.send(this.URLString);
}
}
};

this.reset();
this.createAJAX();
}
var messageObj = new DHTML_modalMessage();
