/*@cc_on _d=document;eval('var document=_d')@*/

function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function get_mode() {
    var mode;
    if (window.opera){
        mode = 4;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 2;
        }
    }
    else if (navigator.userAgent.indexOf('Safari') != -1) {
            mode = 4;
    }
    else if (navigator.appName == 'Netscape') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 1;
        }
    }
    else if (navigator.userAgent.indexOf('Firefox') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Netscape') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Gecko') != -1) {
        mode = 1;
    }
    else {
        mode = 4;
    }
    return mode;
}

function make_tag(str, stag, etag) {
    var mode = get_mode();
    if (mode == 1 || mode == 4) {
        var bl1 = str.value.substring(0, str.selectionStart);
        var bl2 = str.value.substring(str.selectionStart, str.selectionEnd);
        var bl3 = str.value.substring(str.selectionEnd, str.value.length);
        str.value = bl1 + stag + bl2 + etag + bl3;
    }
    else if (mode == 2) {
        str.focus();
        var sel = document.selection.createRange();
        var rang = str.createTextRange();
        rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
        rang.moveEnd("textedit");
        if(rang.text.replace(/\r/g,"").length != 0){
            var las = (str.value.match(/(\r\n)*$/),RegExp.lastMatch.length);
            str.selectionStart = str.value.length - (rang.text.length + las);
            str.selectionEnd = str.selectionStart + sel.text.length;
            str.selectionStart2 = str.value.replace(/\r/g,"").length - (rang.text.replace(/\r/g,"").length + las/2);
            var bl1 = str.value.substring(0, str.selectionStart);
            var bl2 = str.value.substring(str.selectionStart, str.selectionEnd);
            var bl3 = str.value.substring(str.selectionEnd, str.value.length);
            str.value = bl1 + stag + bl2 + etag + bl3;
            str.selectionEnd2 = (str.selectionStart2 + stag.length + bl2.length + etag.length) - str.value.replace(/\r/g,"").length;
            rang.moveStart("character",str.selectionStart2);
            rang.moveEnd("character",str.selectionEnd2);
        }else{
            rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
            rang.text = stag + etag;
            rang.moveStart("character",-(stag.length + etag.length));
        }
        rang.select();
    }
    else if (mode == 3) {
        str.value = stag + str.value + etag;
    }
    else {
        str.value += stag + etag;
    }
    return;
}

function add_link(str) {
    var url = prompt('请输入需做链接的网址。将文字拖动选中后，该文字上就会自动添加链接。', 'http://');
    if (!url) {
        return;
    }
    else {
        var stag = '<a HREF="' + url + '" target="_blank">';
        var etag = '</a>';
        make_tag(str, stag, etag);
    }
}

function add_tag(str, tag) {
    var stag = '<'  + tag + '>';
    var etag = '</' + tag + '>';
    make_tag(str, stag, etag);
}

function resize_font(str, size) {
    var stag = '<span class="' + size + '">';
    var etag = '</span>';
    make_tag(str, stag, etag);
}

function change_font_color(str, color) {
    var stag = '<span style="color:' + color + '">';
    var etag = '</span>';
    make_tag(str, stag, etag);
}

function swImg(iName,str) {
        document.images[iName].src = str;
}

function swFormImg(name, url) {
    document.getElementById(name).src = url;
}

function is_macie() {
    return (navigator.appName == 'Microsoft Internet Explorer' && navigator.platform == 'MacPPC') ? 1 : 0 ;
}

function setEvent(element, name, func, capture) {
    if (element.addEventListener) { element.addEventListener(name, func, capture);
    } else if (element.attachEvent) { element.attachEvent('on' + name, func); }
}

function addScript(url,charset){
  var script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.setAttribute('src', url);
  script.setAttribute('charset', charset);
  document.getElementsByTagName('head').item(0).appendChild(script);
}

function addNews(html){
  document.getElementById('member_news_box').innerHTML = html;
}

function setSubmitTrue(element) { window.setTimeout(function() { element.disabled = true; }, 1) }

function setSubmitFalse(element) { window.setTimeout(function() { element.disabled = false; }, 5000) }

function setDisable(elements) {
    for (var i=0; i< elements.length; i++) {
        var element = elements[i];
        if (element.type == 'submit') {
            setSubmitTrue(element);
            setSubmitFalse(element);
        }
    }
}

function disableSubmit(elements) {
    for (var i=0; i<document.forms.length; ++i) {
        if (document.forms[i].onsubmit) continue;
        document.forms[i].onsubmit = function() {
            setDisable(this.elements);
        }
    }
}

function fixThumbnailSize (obj, size) {
     var ox = obj.width;
     var oy = obj.height;
     var raito = ( ox > oy ) ? ox / size : oy / size;
     if (raito < 1) raito = 1;
     var x = Math.floor( ox / raito );
     var y = Math.floor( oy / raito );
     obj.style.width  = x + "px";
     obj.style.height = y + "px";
}

/* Just Width */
function fixThumbnailSize2 (obj, size) {
    var ox = obj.width;
    var oy = obj.height;
    var ratio = ox / size;
    if (ratio < 1) ratio = 1;
    var x = Math.floor( ox / ratio );
    var y = Math.floor( oy / ratio );
    obj.style.width = x + "px";
    obj.style.height = y + "px";
}

function setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) {
    var sCookie = sName + "=" + encodeURIComponent(sValue);
    if( oExpires ) {
        sCookie += "; expires=" + oExpires.toGMTString();
    }
    if( sPath ) {
        sCookie += "; path=" + sPath;
    }
    if( sDomain ) {
        sCookie += "; domain=" + sDomain;
    }
    if( bSecure ) {
        sCookie += "; secure";
    }
    document.cookie = sCookie;
}

if (typeof(Mixi) == 'undefined') {
  var Mixi = new Object();
}

// js/mixi/util.js
Mixi.Util = {
  disableEvent: function(event) {
    if (event.stopPropagation) event.stopPropagation();
    if (event.preventDefault)  event.preventDefault();
    event.cancelBubble = true;
    event.returnValue  = false;
  }
};

// js/mixi/form.js
Mixi.Form = {
  focusedClassName: 'focus',
  bluredClassName:  'blur',
  initialize: function() {
    this.setupColorAction('input');
    this.setupColorAction('textarea');
    this.setupColorAction('select');
  },
  setupColorAction: function (tagName) {
    var elements = document.getElementsByTagName(tagName);
    $A(elements).each(function(element){
      Event.observe(element, 'blur',  Mixi.Form.createBlurCallback(element));
      Event.observe(element, 'focus', Mixi.Form.createFocusCallback(element));
    });
  },
  createBlurCallback: function(element) {
    return function() {
      //Element.removeClassName(element, Mixi.Form.focusedClassName);
    };
  },
  createFocusCallback: function(element) {
    return function() {
      //Element.addClassName(element, Mixi.Form.focusedClassName);
    };
  }
}
Event.observe(window, 'load', Mixi.Form.initialize.bind(Mixi.Form));

// js/mixi/searchbox.js
Mixi.SearchBox = Class.create();
Object.extend(Mixi.SearchBox.prototype, {
    initialize: function(listId, defaultPageName) {
        var tabs = $(listId).getElementsByTagName('li');
        this.anchors = $A(tabs).collect( function(tab) {
          return tab.getElementsByTagName('a')[0];
        } );
        if (typeof(this.currentName) == 'undefined') {
            this.currentName = defaultPageName;
        }
        this.anchors.each(this.setupAnchorEvent.bind(this));
    },
    setupAnchorEvent: function(anchor) {
        var self = this;
        var tmp = '';
        Event.observe(anchor, 'click', function(event) {
            Mixi.Util.disableEvent(event);
            self.anchors.each(function(element){
                var href = element.getAttribute('href');
                var pageName = href.substr(href.indexOf('#') + 1);
                if (self.currentName == pageName) {
                    var SearchMT      = self.getInputBox(pageName, 'MT');
                    var SearchKeyword = self.getInputBox(pageName, 'keyword');
                    if (typeof(SearchMT) != 'undefined') {
                        tmp = SearchMT.value;
                    } else if (typeof(SearchKeyword) != 'undefined') {
                        tmp = SearchKeyword.value;
                    }
                }
            }),
            self.anchors.each(function(element){
                var href = element.getAttribute('href');
                var pageName = href.substr(href.indexOf('#') + 1);
                var SearchMT      = self.getInputBox(pageName, 'MT');
                var SearchKeyword = self.getInputBox(pageName, 'keyword');
                if(typeof(SearchMT) != 'undefined') {
                    SearchMT.value = tmp;
                } else if (typeof(SearchKeyword) != 'undefined') {
                    SearchKeyword.value = tmp;
                }
                if (element == anchor) {
                    Element.addClassName(element, 'selected');
                    Element.show(pageName);
                    self.currentName = pageName;
                } else {
                    Element.removeClassName(element, 'selected');
                    Element.hide(pageName);
                }
            });
        });
    },
    getInputBox: function(pageName, inputName) {
        var self = this;
        var inputBoxes = $(pageName).getElementsByTagName('input');
        var count = 0;
        while (count < inputBoxes.length) {
            if (inputBoxes[count].name == inputName) {
                var inputBox = $(pageName).getElementsByTagName('input')[count];
            }
            count++;
        }
        return inputBox;
    }
});
Mixi.SearchBBSBox = Class.create();
Object.extend(Mixi.SearchBBSBox.prototype, {
    initialize: function(formId, listId) {
        this.formElement = $(formId);
        var tabs = $(listId).getElementsByTagName('li');
        this.anchors = $A(tabs).collect( function(tab) {
            return tab.getElementsByTagName('a')[0];
        } );
        this.anchors.each(this.setupAnchorEvent.bind(this));
    },
    setupAnchorEvent: function(anchor) {
        var self = this;
        Event.observe(anchor, 'click', function(event) {
            Mixi.Util.disableEvent(event);
            self.anchors.each(function(element){
                var href = element.getAttribute('href');
                var bbsNumber = href.substr(href.indexOf('#') + 1);
                if (element == anchor) {
                    Element.addClassName(element, 'selected');
                    self.formElement.bbs.value = bbsNumber;
                } else {
                    Element.removeClassName(element, 'selected');
                }
            }); 
        });
    }
});

// js/mixi/navigation.js
/*
 * Mixi.Navigation
 *
 * Dependencies:
 *
 *   Prototype.js ver 1.4 or above.
 *
 * Usage:
 *
 *   <script type="text/javascript" src="/static/js/prototype.js"></script>
 *   <script type="text/javascript" src="/static/js/mixi/navigation.js"></script>
 *   <script type="text/javascript">
 *   <![CDATA[
 *     Mixi.Navigation.setupSubMenus('diary', 'photo', 'video', 'review');
 *   ]]>
 *   </script>
 */
Mixi.Navigation = {
  menus: new Array(),
  setupSubMenus: function() {
    this.menus = $A(arguments);
    var subMenus = this.menus.map(function(name){ return name + 'SubMenu'; });
    subMenus.each(function(element){ Element.hide(element); });
    Event.observe(document, 'click', function(event) {
      var caller = Event.element(event);
      if (caller.nodeName.toLowerCase() == "a") return;
      if (subMenus.any(function(element){ return Element.visible(element); })) {
        subMenus.each(function(element){ Element.hide(element); });
        Mixi.Util.disableEvent(event);
      }
    });
    this.menus.each(function(name){
      Mixi.Navigation.setupNavigationSubMenu(name);
    });
  },
  setupNavigationSubMenu: function(targetName) {
    var self = this;
    var triggerElementName = targetName + 'PullDownButton';
    Event.observe(triggerElementName, 'click', function(event) {
      Mixi.Util.disableEvent(event);
      self.menus.reject(function(name){
        return name == targetName;
      }).each(function(name){
        Element.hide(name + 'SubMenu');
      });
      var targetElement = $(targetName + 'SubMenu');
      Element.toggle(targetElement);
    });
  }
};

//selectAll checkbox
function selectAll(id,checkparent, inputname, bool){
	if(!$(id)) return false;
	$(id).observe('click', function(event){
		Event.stop(event);
		$$(checkparent+' input[name=' + inputname + ']').each(function(input){
			input.checked = bool;			
		})
	})
}

Event.observe(window, 'load', function() { 
	selectAll('selectallcheckbox','li.inviteList','friend_id',true);
	selectAll('noselectcheckbox','li.inviteList','friend_id',false);
	
	selectAll('selectallcheckbox','ul.entryList01','message_id',true);
	selectAll('noselectcheckbox','ul.entryList01','message_id',false);
}); 

//setEvent(window,'load', disableSubmit, 0);
