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

var ads_node = new Array(); //Node
var ads_hs_node = new Array(); //Node

/*
 * 広告を表示します 
 * <adv:ov 
 *   count="3" 
 *   type="2" 
 *   area="right" 
 *   rowcss="interestmatch" 
 *   titleclass="ov_title" 
 *   descclass="ov_desc"
 *   hostclass="host" 
 *   isfooter="1" 
 *   />
 * do_adv_parsing を呼んだ後読んでください。
 *
*/
function adv_write(){
  
  //////// ---------IM / SS ------ ////////

  if(typeof(zSr) == "undefined"){
    return ;
  }
  zSr.splice(0,6);
  
  
  //click パラメータ
  var paths = location.pathname.split("/");
  var path  = (paths.length > 1 ? paths[1] : "top");
  if (location.pathname.indexOf("search") == 0){
    path = "search";
  }
  var oreg  = new RegExp("^[a-z]+$");
  if (!path.match(oreg)){
    path = (paths.length > 2 ? paths[2] : "top");
  }
  if (path.indexOf('%') != -1){
    path = "local";
  }
  
  
  for (var i = ads_node.length -1 ; i >= 0 ; i-- ) {
    var html = '';
    
    var type        = ads_node[i].attr('type');         //表示タイプ
    var title_class = ads_node[i].attr('titleclass');   //タイトルクラス名
    var all_class   = ads_node[i].attr('rowcss');       //行ごとのクラス名
    var desc_class  = ads_node[i].attr('descclass');    //詳細のクラス名
    var host_class  = ads_node[i].attr('hostclass');    //ホストのクラス名
    var area        = ads_node[i].attr('area');         //Clickパラメタ
    var isfooter    = ads_node[i].attr('isfooter');     //インタレストマッチのフッタの有無

    var hit = 0;
    for (var k = ads_node.length -1 ; k >= 0 ; k-- ){
      if (area == ads_node[k].attr('area')){
        hit++;
      }
    }
    if(hit > 1){
      hit = 0;
      for (var k = ads_node.length -1 ; k >= i ; k-- ){
        if (area == ads_node[k].attr('area')){
          hit++;
        }
      }
      area = area + "-" + hit;
    }

    for (var count = ads_node[i].attr('count') -1 ; count >= 0 ; count--){
      var descr = zSr.shift();
      var unused1 = zSr.shift();
      var clickURL = zSr.shift();
      var title = zSr.shift();
      var sitehost = zSr.shift();
      var unused2 = zSr.shift();
      if (title == undefined){
        break;
      }
      html += "<div class ='" + all_class + "'>";
      html += '<a class="ad" href="' + clickURL + '"';
      html += 'onclick="ov_click_count(location.href,\'' ;
      html += path + area +  '\',\'' + title + '\');" >';
      
      //1行
      if (type == 1) {
        html +=  "<span class ='" + title_class + "'>" + title + '</span>';
        html +=  "<span class ='" + desc_class + "'>" + descr + '</span>';
      }
      //2行(詳細横にホスト名)
      if (type == 2) {
        html +=  "<span class ='" + title_class + "'>" + title + '</span>';
        html +=  "<span class ='" + desc_class + "'>" + descr ;
        html +=  "<span class ='" + host_class + "'>" + sitehost + '</span>'+ '</span>';
      }
      //2行(タイトル横にホスト名)
      if (type == 3) {
        html += "<span class ='" + title_class + "'>" + title + '</span>';
        html += "<span class ='" + host_class + "'>" + sitehost + '</span>';
        html += "<span class ='" + desc_class + "'>" + descr + '</span>';
      }
      
      html += '</a></div>';
      
    }
    
    //フッタがいるなら
    if (isfooter == 1) {
      html +=  '<div align="right" class="interest_footer"><a href="http://ov.yahoo.co.jp/service/int/index.html?o=IM0028"  target="_blank">インタレストマッチ</a></div>';
    }
    
    //親オブジェクトに広告書き込み
    //ads_node[i][0].parentNode.innerHTML = html ;
    
    //親オブジェクトに広告書き込み
    if(navigator.userAgent.indexOf("Opera") != -1){
      var div_id = ads_node[i][0].parentNode.id;
      var element = document.getElementById(div_id); 
      var newElement = document.createElement("div"); 
      newElement.innerHTML = html; 
      element.insertBefore(newElement,element.firstChild);
    } else{
      ads_node[i][0].parentNode.innerHTML = html ;
    }
    
    if (navigator.userAgent.indexOf("MSIE")!=-1){
      //ads_node[i][0].parentNode.innerHTML += ""; //for IE
    }
    //<adv:ov> タグ削除
    //ads_node[i].remove();
  }
  
  //////// ---------HotSpot ------ ////////

  var ctxtids = Array(".NET 求人","40代転職","IT 求人 情報","IT 業界","SOHO ビジネス","アパレル転職","アルバイト",
                      "エージェント","シンクタンク 求人","シンクタンク 転職","スキルアップ","プレゼンテーション セミナー",
                      "メーカー 求人","リクルート転職","愛知県転職","愛知転職","英会話 ネット","英会話CD","英語仕事",
                      "海外求人","外資系転職","外資転職","求人","求人 IT","求人サイト","求人情報","求人情報サイト",
                      "求人大阪","求人派遣","求人福岡","給料 転職","金融転職","経理転職","再就職","採用","埼玉転職",
                      "仕事 転職","仕事 東京","仕事求人","仕事情報","仕事探し","自動車 転職","就職","就職 電気",
                      "就職転職","女 転職","女性転職","職務経歴書","人材","人材紹介 転職","人材派遣","第二新卒",
                      "中途採用","転職","転職 IT","転職 メーカー","転職 紹介","転職 設備","転職 電気","転職エージェント",
                      "転職エンジニア","転職コンサルタント","転職サイト","転職フェア","転職営業","転職活動","転職看護師",
                      "転職求人","転職求人情報","転職情報","転職相談","転職大阪","転職中高年","転職福岡","転職理由",
                      "派遣","派遣アルバイト","不動産転職","面接転職","薬剤師転職");
  
  for (var i = ads_hs_node.length -1 ; i >= 0 ; i-- ) {
    var html        = '';
    var ref    = path + 'keyword';    
    var type        = ads_hs_node[i].attr('type');         //表示タイプ
    var all_class   = ads_hs_node[i].attr('rowcss');       //行ごとのクラス名
    
    for (var count = ads_hs_node[i].attr('count') -1 ; count >= 0 ; count--){
      var randindex  = Math.floor( Math.random() * ctxtids.length );
      var s           = ctxtids[randindex];
      ctxtids.splice(randindex,1);
      
      //2行
      if (type == 2 && (ads_hs_node[i].attr('count') / 2) ==  (count + 1)  ){
        html += '</div>';
        html += '<div class="hs_2col">';
      }
      if (type == 2 && count == ads_hs_node[i].attr('count') -1 ){
        html += '<div class="hs_2col">';
      }
      
      html +=
        '<div class="' + all_class + '"><a href="http://search.careerzine.jp/sponsor/?Keywords=' + 
        encodeURI(s) + '&ref=' + ref + '" ' + 
        'onclick="ov_click_count(location.href,\'' + ref + '\',\'' + s + '\')"' + 
        'target="_blank">' + s + '</a></div>';
      
    }
    //親オブジェクトに広告書き込み
    //ads_hs_node[i][0].parentNode.innerHTML = html ;
    //親オブジェクトに広告書き込み
    if(navigator.userAgent.indexOf("Opera") != -1){
      var div_id = ads_hs_node[i][0].parentNode.id;
      var element = document.getElementById(div_id); 
      var newElement = document.createElement("div"); 
      newElement.innerHTML = html; 
      element.insertBefore(newElement,element.firstChild);
    } else {
      ads_hs_node[i][0].parentNode.innerHTML = html ;
    }
    
    if (navigator.userAgent.indexOf("MSIE")!=-1){
      //ads_hs_node[i][0].parentNode.innerHTML += ""; //for IE
    }
    //<adv:hs> タグ削除
    //ads_hs_node[i].remove();
    
  }
  
  
}
/*
 *  広告初期処理
 *  Footer で呼んでください。
 *  
 *
 *
*/
function do_adv_parsing( element ) {

  //////// ---------IM / SS ------ ////////
  
  //-- Keyword があれば SS になる ---
  //1ページにIMとSSが一緒になることはない
  var keyword = '';
  if(location.pathname.indexOf("/search") != -1){
    keyword = get_param_keyword(location.search);
  }
  if(location.pathname.indexOf("/article/tag/") != -1){
    var metas = document.getElementsByTagName("meta");
    for(var i = 0 ; i < metas.length ; i++ ){
      if (metas[i].name == "keywords"){
        keyword = metas[i].content;
      }
    }
  }
  if(location.pathname.indexOf("/monosashi/detail/") != -1){
        keyword = '転職';
  }
  if(location.pathname.indexOf("/kaisha/") != -1){
        keyword = '転職';
  }



  var includes = adv_get_subelements_by_name(element, 'adv:ov'); 
  var includes_total = includes.length+1;
  var includes_ad_count = 0;

  //広告数取得およびNode取得
  for (var i = includes.length -1 ; i >= 0 ; i-- ) {
    var include = $(includes[i]);
    var count = include.attr('count');
    includes_ad_count = eval(includes_ad_count) + eval(count);
    ads_node.push(include);
  }
  
  var paths = location.pathname.split("/");
  var path  = (paths.length > 2 ? paths[1] : "top");
  var oreg  = new RegExp("^[a-z]+$");
  if (!path.match(oreg)){
    path = (paths.length > 3 ? paths[2] : "top");
  }
  if (path.indexOf('%') != -1){
    path = "local";
  }
  
  path = encodeURIComponent(path);
  var config  = "23228933181";
  var source  = "ecnavi_jp_careerzine_im";
  var ctxtUrl = encodeURIComponent(location.protocol + "//" + location.host + location.pathname);
  
  var ctxtids = Array("boo0101","boo0103","boo0104","boo0105","car0200",
                      "car0400","com0101","com0102","com0300","com0400",
                      "com0500","com0700","com0800","com0900","com1001",
                      "edu0204","edu0205","edu0400","edu0601","edu0602",
                      "ele0301","ele0302","ele0303","ent0300","fin0100",
                      "hea0101","hea0102","hea0103","hea0201","hea0204",
                      "ins0203","ins0300","pro0603","pro0700","pro0801",
                      "pro0902","pro1100","pro1200","pro1900","rea0301",
                      "ret0203","ret0204","sof0101","sof0102","sof0103",
                      "sof0104","sof0105","sof0201","sof0202","spo0200",
                      "spo0500");
  
  var ctxtid  = ctxtids[Math.floor( Math.random() * ctxtids.length )];
  var type    = "im_mz_" + path + "_" + ctxtid;

  // keyrowd がないので IM
  if (keyword == ''){
    document.write('<s' + 'cript type="text/javascript" language="javascript" src="http://im.ecnavi.ov.yahoo.co.jp/js_flat/?source=' 
                    + source + '&type=' + type + '&ctxtId=' + ctxtid + '&maxCount=' 
                    + includes_ad_count + '&outputCharEnc=utf8&ctxtUrl=' + ctxtUrl + '"></s' + 'cript>');
  // keyrowd があるので SS
  } else {
      document.write('<s' + 'cript type="text/javascript" language="javascript" src="/search/xml_overture?keywords=' 
                      + encodeURI(keyword) + '&maxcount=' + includes_ad_count + '&ua=' 
                      + escape(escape(navigator.userAgent)) + '"></s' + 'cript>');
  }


  //////// ---------HotSpot ------ ////////
  includes = adv_get_subelements_by_name(element, 'adv:hs'); 
  includes_total = includes.length+1;
  includes_ad_count = 0;

  //広告数取得およびNode取得
  for (var i = includes.length -1 ; i >= 0 ; i-- ) {
    var include = $(includes[i]);
    var count = include.attr('count');
    includes_ad_count = eval(includes_ad_count) + eval(count);
    ads_hs_node.push(include);
  }


}

function adv_get_subelements_by_name(element,elementname) {
  var found = new Array();
  elementname = elementname.toLowerCase();
  if (element.nodeType == 9 || element.nodeType == 1) {
    var children = element.childNodes;
    for (var i = 0; i < children.length ; i++ ) {
      var elem = children[i];
      if (elem.nodeType == 1) {
        var tagname = elem.tagName.toLowerCase();
        if (tagname == elementname) {
          found.push(element.childNodes[i]);
        }
        if ( elem.childNodes.length > 0) {
          var res = adv_get_subelements_by_name(elem,elementname);
          found = found.concat(res);
        }
        
      }
    }
  }
  return found;
}

function get_param_keyword(str){
  var dec = decodeURIComponent;
  var par = new Array, itm;
  if(typeof(str) == 'undefined') return par;
  if(str.indexOf('?', 0) > -1) str = str.split('?')[1];
  str = str.split('&');
  for(var i = 0; str.length > i; i++){
    itm = str[i].split("=");
    if(itm[0] == 'q'){
      return typeof(itm[1]) == 'undefined' ? true : dec(itm[1]);
    }
  }
  
}

// create flash control
function CreateFlash(flashid, srcpath, width, height, cssclass) {
  var flash_tag = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="'+width+'" height="'+height+'" id="'+flashid+'" align="middle">'+
  '<param name="allowScriptAccess" value="sameDomain" />' +
  '<param name="movie" value="'+srcpath+'" />' +
  '<param name="quality" value="high" />' +
  '<embed src="'+srcpath+'" quality="high" width="'+width+'" height="'+height+'" name="'+flashid+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'+
  '</object>';
  document.write('<div class="'+cssclass+'">' + flash_tag + '</div>');
}

//-----------------------------------------------------------------------------
// impAct AD CODE
function impA_rotate(list) {
  var i = list.length;
  while (--i) {
  var j = Math.floor(Math.random() * (i + 1));
  if (i == j) continue;
  var k = list[i]; list[i] = list[j]; list[j] = k;
  }
  for ( i = 0; i <= list.length; i++){ if ( list[i] == "" ) list.splice(i,1);}
  return list;
}
//-----------------------------------------------------------------------------
// overture AD CODE
var ov_ads = new Array();
var zSr_i = 6;

var OvParts = function (ad_count, add_id, css_class) {
  this.ad_count = ad_count
  this.add_id = add_id
  this.css_class = css_class
}


